唐朝末年,天灾不断,各地都闹起了饥荒,黄河以南的地区更加严重。本来就已经吃不上饭的农民,却还要受到朝廷官吏的压榨,于是农民纷纷发动起义。
公元875年,王仙芝、尚让等人在长垣(今河南长垣东北)发动起义,拉开了唐末农民起义的序幕。王仙芝率领数千农民,很快就将濮州和曹州占领,那里的农民纷纷参加起义,起义的队伍不断壮大。
黄巢是冤句(今山东曹县西北)人,曾多次参加科举考试,却屡次失败。后来,他以贩卖私盐为业,积累了一定的财富。他看到王仙芝起义后,便与同族的兄弟、子侄招集数千人发动起义,响应王仙芝。
此后,黄巢率领起义军与王仙芝的起义军会合,声势更加壮大。他们向东攻打沂州(今山东临沂),但未能取胜,于是开始向洛阳周围地区进攻,将郏城(今河南郑县)、阳翟(今河南禹县)等八个县攻下。公元876年,王仙芝、黄巢率领起义军攻下了汝州,将汝州刺史王镣俘虏。朝廷派去镇压起义的部队与起义军多次交战,但每次都被起义军打败。蕲州刺史裴偓决定把王仙芝招降过去。裴偓写信给王仙芝,说只要王仙芝投降,朝廷就会封他为左神策军押牙兼监察御史。王仙芝开始动摇了,打算接受招降。黄巢知道这件事后,把王仙芝狠狠地骂了一顿,还用棍子打中了王仙芝的脑袋,把王仙芝打得头破血流。
此后,黄巢脱离了王仙芝,自己率领两千人马与官军作战。公元877年,黄巢率领起义军先后将郓州(今山东郓城)、沂州攻下。王仙芝攻下了鄂州(今湖北武昌),又与黄巢一起将宋州(今河南商丘南)攻下,之后又向郢州发动进攻。担任唐朝招讨副都监的杨复光知道王仙芝有意投降,于是再次诱降王仙芝。王仙芝派楚彦威、尚君长等人与杨得光商议投降之事。可是,楚彦威和尚君长还没有见到杨复光,就被唐朝招讨使宋威抓了起来。宋威把楚彦威和尚君长送到长安,他们很快就被杀了。王仙芝知道这件事后非常生气,便改变了主意,决定与唐军交战到底。公元878年,王仙芝在黄梅(今湖北黄梅西北)打了败仗,被唐军杀死。
王仙芝死后,他手下的人马与黄巢的起义军会合,黄巢被众人推举为“黄王”,号“冲天大将军”。从此之后,黄巢成为了起义军的领袖。
黄巢率领起义军继续与唐军作战,将濮州和沂州攻下后,打算进攻东都洛阳。当时执政的唐僖宗非常害怕,立即派兵增援洛阳。黄巢知道,洛阳兵多将广,起义军兵力不足,很难攻下洛阳,而长江下游唐军力量薄弱。于是,黄巢率领起义军向南方挺进。
黄巢率领起义军进入福建,将福州攻下,并在那里杀死了很多地主和官僚。公元879年,黄巢率领起义军占领了广州。当时广州爆发了瘟疫,黄巢命令起义军休整了两个月。休整后,黄巢又率领起义军北上。黄巢自号“义军都统”,并声称要打入关中。起义军得到了百姓的拥护,一下子扩大到数十万人。
公元880年,黄巢率领起义军在信州(今江西上饶)打败了淮南节度使手下大将张璘,又渡过长江,跨越淮河,占领了东都洛阳。一路之上,农民纷纷参加起义军,使得起义军不断壮大。占领洛阳后,黄巢不作停留,继续率领起义军向西挺进,攻下潼关,直逼长安。唐僖宗害怕极了,立即向成都逃去。
公元881年,黄巢率领起义军进入长安。长安城里的百姓都非常高兴,站在街道两旁迎接起义军进城。黄巢部将尚让对百姓们说:“黄王就是为了百姓才起兵的,我们决不会像唐朝皇帝那样残暴地对待你们,你们该做什么就做什么,千万不要担心。”随后,起义军向贫困的百姓发放了很多财物,百姓无不欢呼雀跃。
在这一年的年底,黄巢在含元殿登基,改国号为齐,定年号为金统。唐朝的官员,四品以上的全部被撤销,四品以下的留用。黄巢任命尚让为太尉兼中书令,孟楷为尚书左仆射,盖洪为尚书右仆射。那些留在长安城里的唐朝宗室,全部被起义军杀死。
黄巢虽然占领了长安,建立起大齐政权,但是,大齐政权并没有必要的经济政策,因此只能坐吃山空。
公元882年,唐军开始发动反攻。黄巢手下大将朱温在与唐军交战时兵败,之后投降了唐军。唐僖宗为他赐名全忠,并把他任命为右金吾大将军。此后,西北沙陀族的酋长李克用率领一万骑马支援唐军。黄巢的部队接连失利,只得退出长安。
此后,黄巢以孟楷为先锋,攻下了蔡州,将陈州(今河南淮阳)围了起来。陈州刺史率领守军顽强抵抗,黄巢先后多次攻城都没有成功。最后,黄巢在泰山狼虎谷兵败自杀。
黄巢起义前后历时十年,是唐朝历史上规模最大的农民起义,给残暴腐朽的唐朝统治造成了沉重打击。黄巢起义结束后不久,唐朝也宣告灭亡了。