王仙芝连破数州,声言要踏平申州,替尚君长等报仇。唐招讨副使曾元裕尾随王仙芝大军来到申州城下,王仙芝正率领大军拼命攻城,申州节度使全身发抖,拿着盾牌拼命喊:“给我挡住,挡住。”此时盾牌已经插满了箭,突然,曾元裕从后杀到,农民军措手不及,曾元裕大破王仙芝,申州刺史大喜,率军杀出,义军万人被杀,数万人被招降。
唐僖宗听闻曾元裕大捷,以宋威杀尚君长非是,且讨贼无功,诏还青州,让曾元裕担任诸道行营招讨使,解除宋威的兵权,让宋还驻青州。并拜颍州刺史张自勉为招讨副使,令高骈为荆南节度使,加紧围剿王仙芝义军。
二月,王仙芝北进受阻,乃率领义军南下蕲州。曾元裕穷追不舍,王仙芝义军在黄梅陷曾元裕、高骈和张自勉的大军包围。王仙芝看到四面都是密密麻麻的官军,懊丧不已。曹师雄怒说:“大丈夫当死中求生,官军再多有奈我何!”王仙芝于是下令死战,十万农民军于是举起武器冲向官军,黄美镇大地在震抖,方圆十里喊杀声不断,王仙芝和高骈在马上厮杀,曾元裕却大战曹师雄,张自勉也和尚让抓住厮杀,农民军激战失利,义军五万余人战死,王仙芝见官军强大,于是大喊:“撤退。”
官军追赶三十里,眼看天色已晚,于是停止追击。王仙芝见官军不再追击,乃下令:“就地建造壁垒,转为防御,以待救援。”明日,官军又从四面八方围了过来,王仙芝令尚让率精兵五千突围向黄巢求援。尚让大吼一声率领将士杀出,没想到官军如潮水般涌来,尚让无法攻破坚固的官军营垒,无功而回。半个月后,农民军粮食已经吃完,王仙芝下令:“突围!”王仙芝一马当先率领将士们冲杀,曾元裕擒贼先擒王,下令弓箭手个个对准王仙芝,王仙芝突围中被乱箭射死,尚让、曹师雄和王重霸杀出重围,农民军大部分战死,尚让和王重霸率领余部投奔黄巢。曾元裕把王仙芝的首级割下,传长安。唐僖宗狂喜,以功封曾元裕为平卢节度使,代替宋威镇守青州。