咸通十四年(873)懿宗去世,太子李俨即位,是为僖宗,改名偎。僖宗终日打猎游嬉、朝政日非。黄河中游天灾严重,广大农民卖妻鬻子,无以为生。农民反抗遍于各地,大起义爆发的条件终于成熟。

王仙芝和黄巢是唐末农民战争的发劝者和领导者。两人原来都贩私盐,一贯与官军为敌,具有武装斗争的经验。唐僖宗乾符二年(875),濮州(今山东鄄城北)人王仙芝与尚让、尚君长等首先在长坦发动起义,发布檄文指责唐政权“吏贪沓,赋重,赏罚不平”。王仙芝自称“天补平均大将军兼海内诸豪都统”。义军先后攻克濮州、曹州。冤句(今山东曹县西北)人黄巢亦于同年以数千人起义,响应王仙芝。两支义军会合在一起壮大了声势,困于重敛的农民争先恐后归附者凡数万人

三年,义军攻克汝州(今河南临汝),俘刺史王镣,东都大震。以后进军郑州,因感敌人军力强大,乃改用避实就虚的战略,向敌人力量薄弱的南方进军,主要在长江中游以北及淮河上游以南战斗,攻克不少州县。由于在围攻蕲州的战役中,王仙芝曾发生动摇,有降唐意,黄巢遂与他分兵作战。大致此后仙芝仍转战于南方,黄巢则北上打回沂州等地。四年,王仙芝第二次发生动摇,虽降敌之举未成功,但士气大为削弱。五年,王仙芝在黄梅战死,尚让率余众北上与黄巢会合,众推黄巢为“冲天大将军”,建元“王霸”。

从此,黄巢就成为起义军的最高领导人。同年,义军进攻受阻,遂再次挥军南下,渡过长江后向东挺进,由浙趋闽,最后于乾符六年攻占了广州。在岭南经过两个月的休整,黄巢于冬季开始率大军北伐,目标是攻取两京,推翻唐政权。黄巢自号“义军都统”,露表指斥唐廷“:宦竖柄朝,垢蠹纪纲。指诸臣与中人赂遗交构状,铨贡失才”,并宣告“禁刺史殖财产,县令犯赃者族”。所指皆当时极弊。义军北伐后,在荆门(今属湖北)为刘巨容所挫,乃转而东进,在信州(今江西上饶)之役击杀唐将领张磷,取得了重大的胜利。不久,黄巢自采石(今安徽马鞍山西南长江东岸)渡长江北上,接着,攻克了洛阳。义军沿途不剩财货,纪律严明,入洛阳城后“闾里晏然”。不久,黄巢又乘胜西进,破潼关天险,攻占长安。唐僖宗狼狈逃往成都。黄巢入城的时候,尚让对群众宣布:“黄王起兵,本为百姓,非如李氏不爱汝曹。汝曹但安居无恐!”

广明元年十二月十三(881年1月16日),黄巢在含元殿即位,国号“大齐”,改元“金统”。农民政权在长安正式建立后,立即镇压隐藏在城内的公卿、贵族和百官;没收富豪之家财产,号为“淘物”。唐官四品以下的酌情留用,三品以上者全部罢免。

当时,关中尚有残留的数万禁兵,凤翔节度使郑畋把这些残军组织起来,并传檄诸道,号召藩镇出兵镇压起义。于是双方在关中展开了反复的拉锯战,战争呈相持状态。后来,发生了对大齐不利的几件事:①长安城中粮食严重不足;②大齐的同州(今陕西大荔)守将朱温叛变,投降了敌将王重荣;③唐朝乞援于沙陀族李克用,李亲率一万七千人自雁门(今山西代县)南下支援唐军。随着力量对比朝不利于大齐的方向发展,义军在中和三年(883)春大败于梁田陂(今陕西华县西南)。黄巢知久留关中已不可能,遂于四月放弃长安东撤。

义军撤出关中时犹有众十五万,途经蔡州(今河南汝南)时,迫使唐朝守将秦宗权战败投降。夏秋之交,黄巢围攻陈州(今河南淮阳)。这次战役持续达三百日之久,最后唐朝调朱温、李克用增援,义军连遭挫败,黄巢终于在中和四年夏退军北撤。围陈之役耗尽了义军的力量,黄巢犯了屯兵于坚城之下的错误。李克用与忠武军监军田从异在王满渡(今河南中牟北)发动进攻,义军损失万余人,尚让降敌。黄巢渡汴河北去,最后与亲故数十人退至狼虎谷(今山东莱芜西南),壮烈牺牲。历时九年余的农民战争至此结束。

唐末农民战争在政治上、经济上和军事上犯了一系列错误,导致悲剧性的结局。但这次大起义有力地打击了唐政权,并且首次提出了“平均”财富的要求,在一定程度上打击了地主经济,在中国古代农民战争史上具有重大意义。