东汉后期,政治日趋腐败,宦官、外戚竞相专权,豪强地主肆意兼并土地,安帝以后,水旱蝗灾连年不断,广大农民纷纷破产流亡。桓帝末年,司隶及豫州(今河南省)一带,“饥死者十四五,至有灭户者”。尽管如此,豪族地主和封建国家压榨搜刮仍有增无减,官吏贪婪无厌,众多农民死于箠楚之下。因此,从安帝以来,农民的反抗斗争,几乎接连不断,从安帝到灵帝的八十余年中,见于历史记载的农民暴动,大小合计不下百次,至于各地的所谓“春饥草窃之寇”、“穷厄寒冻之寇”,更是不可胜数。当时,农民中流传一首歌谣说:“小民发如韭,剪复生;头如鸡,割复鸣。吏不必可畏,民不必可轻!”反映了农民敢于反抗的英雄气概。分散的农民暴动,虽然被东汉政府镇压下去,但是继起的暴动更加频繁,规模更加扩大,终于形成了以张角为首的全国性黄巾大暴动。
张角,冀州巨鹿(今河北平乡县)人,太平道的首领,自称“大贤良师”。灵帝时,疠疫流行。张角画符诵咒,以治病为名创立和传播太平道教,利用宗教,在农民中秘密进行起义的组织活动。张角派遣“弟子八人使于四方”传道,受到农民的信任。经过十几年的艰苦努力,终于“天下辐负(背着小孩)归之”,信徒发展到数十万人,遍及青、徐、幽、冀、荆、扬、兖、豫八州(今长江中下游以北直到黄河中下游广大地区)。
张角的活动,引起了东汉统治集团的注意。东汉王朝屡下“赦令”汉王朝的阴谋失败,又准备命州郡使用武力“捕讨”。司徒杨赐认识到这一问题的严重性,他认为,张角的势力正在“滋蔓”,“今若下州郡捕讨,恐更骚扰,速成其患”,因此,他建议皇帝命令州郡地方官“简别流人,各护归本郡,以孤弱其党,然后诛其渠帅(首领),”,这样“可不劳而定”。其后,侍御史刘陶等人也上疏灵帝,请求“宜下明诏,重募角等,赏以国土:有敢回避,与之同罪”,企图用收买手段,消弭起义。但是东汉统治者的上述对策,并没有得到实行。
在此有利形势下,张角加快了起义准备。他把道徒以“方”为单位组织起来,分为三十六方,大方一万多人,小方六七千人,每方设一渠帅。组织工作就绪后,张角等人“窃人京师,觇视朝政”,深入了解东汉王朝的内部情况,最后决定于甲子年(中平元年,184)三月五日各地同时起义。张角向道徒们发出了“苍天已死,黄天当立,岁在甲子,天下大吉”的口号,向人民宣告东汉王朝崩溃在即,新的朝代将要代起。太平道徒广为散布“黄天泰平”的号,并派人在洛阳的寺庙及州郡官府门上,用白土涂写“甲子”二字,作为起义的信号和攻打的目标。
中平元年(184)春,张角派大方马元义调荆、扬二州数万信徒到邺城(今河北临漳县)集中,配合京城及各地的起义。马元义多次到洛阳,联系宦官封胥、徐奉等人作内应,约定于三月五日内外俱起。但是,当此紧要关头,起义军中的叛徒唐周,向东汉政府告密,泄露了起义的全部计划。东汉政府下令搜捕,马元义在洛阳被捕牺牲,太平道的徒众一千多人遭到杀害;同时,又下令冀州官府逮捕张角等人。张角得知计划泄露,当机立断,他派人星夜驰向各方,通知信徒,立即举行起义。中平元年(1814)二月,以黄巾为标志的农民起义军,在七州二十八郡同时俱起,中国历史上有组织、有准备的农民战争就这样爆发了。
黄巾军由张角统一指挥,向着东汉封建统治发起了猛烈的进攻。黄巾军在起义后迅速形成三个中心。一支是由张角三兄弟领导的冀州黄巾军,张角自称“天公将军”,其弟张宝称“地公将军”,张梁称“人公将军”;一支是由波才领导的颍州黄巾军;另一支是由张曼成领导的南阳黄巾军。起义军声势浩大,“所在燔烧官府,劫略聚邑,州郡失据,长吏多逃亡;旬日之间,天下响应,京师震动”。
黄巾大暴动后,东汉朝廷十分惊慌,急忙任命外戚何进为大将军,率领左右羽林、五营营士屯驻都亭(洛阳附近),并分遣八都尉屯兵函谷、大谷、广成、伊阙、冁辕、旋门、孟津、小平津等八个险要关隘;又遣中郎将皇甫嵩、朱隽、卢植、董卓等率兵分头镇压起义。为了纠集豪族地主武装镇压起义,灵帝采纳中常侍吕强建议,宣布取消党禁,赦免党人。于是各地豪族地主纷纷起兵,与黄巾军为敌。当时朝廷中有一个头脑比较清醒的郎中张钧大胆向灵帝提出诛杀宦官,以谢人民的主张。他说:“窃惟张角所以能兴兵作乱,万人所以乐附之者,其源皆由十常侍多放父兄、子弟、婚亲、宾客典据州郡,辜榷(搜刮)财利,侵掠百姓,百姓之冤无可告诉,故谋议不轨,聚为盗贼。宜斩十常侍,悬头南郊,以谢百姓。又遣使者布告天下,可不须师旅,而大寇自消。”昏庸的灵帝不但不采纳,反而替宦官辩护,结果张钧被宦官所诬杀。
起义前期,各个战场上的黄巾军均给予官军以沉重打击。张角领导的冀州黄巾军活捉安平王刘续、甘陵王刘忠.斩杀幽州刺史郭勋、太守刘卫,攻占了广宗(今河北威县东)、下曲阳(今河北晋县西),并先后打败卢植和董卓率领的官军。当年三月,南阳黄巾军张曼成攻克宛城,杀死太守褚贡。四月,颍川、汝南黄巾军在波才、彭脱指挥下,打败朱隽,并把皇甫嵩的主力包围在长社(今河南长葛东北)。一时之间,农民军声势浩大,官军被打得狼狈不堪。
本来形势的发展对黄巾军很有利,但由于农民军缺乏作战经验,波才的颍川军包围长社后,失去警惕,“依草结营”,给皇甫嵩以可乘之机。皇甫嵩乘风放火,对起义军发起突然袭击。皇甫嵩令军士皆手持一束燃苇登城,使锐士乘间突围,纵火大呼,城上举燎相应,嵩从城中鼓噪出击,恰在此时骑都尉曹操率领援军赶到,合攻黄巾军,义军因之大败,几万人遭到血腥屠杀。接着,波才军余部于阳翟,彭脱义军在西华,相继失败。之后,皇甫嵩调军向东进攻,击败了汝南、陈国黄巾。皇甫嵩又北上东郡,东郡黄巾军领袖卜巳不幸被俘。朱隽一军则继续南下进扑南阳一带义军。
在南阳战场上,张曼成斩杀南阳太守楮贡后,在宛下屯驻百余日,军事上没有新的进展。同年六月,东汉政府派秦颉率兵向起义军反扑,张曼成不幸牺牲。黄巾军推赵弘为帅,队伍扩充到十多万人,将新任的南阳太守秦颉赶跑,再据宛城。朱波会同荆州刺史徐璎、南阳太守秦颉等地方军,合力围攻宛城。从六月至八月,义军粉碎官军多次进攻,坚守住了宛城,朱浅几乎被撤职。但黄巾军错过主动出击时机,坐使官军重新积聚力量扭转局面。赵弘在战斗中牺牲后,义军又推韩忠为帅,韩忠被杀,再推孙夏为帅,继续战斗。由于官军不断增兵,义军毫无后援。十一月,宛城陷落,孙夏率义军向西鄂(今河南南阳市北)境内的精山转移。朱洩乘机追击黄巾军,孙夏战死,黄巾军又有一万多人牺牲,南阳的黄巾军主力,遭到了巨大的挫折。
在冀州地区,起义爆发之后,张角首先率领义军攻占广宗(今河北威县东)、下曲阳(今河北晋县西)诸城邑。东汉政府派北中郎将卢植前往镇压。卢植开始虽然取得小胜,斩获黄巾,军万余人,但他虽倾尽全力“筑围凿堑,造作云梯”,一直未能攻下广宗。东汉政府无奈,只好又改派东中郎将董卓代替卢植去镇压,董卓在下曲阳与义军较量,又被张角一举击破。他围攻广宗三个月,广宗屹然不动。八月底,东汉政府调左中郎将皇甫嵩代替董卓,投入广宗战场。这时张角已病死由其弟张梁统率广宗义军。
“梁众精勇,嵩不能克”,皇甫嵩只得“闭营休士,以观其变”。可是,在十月间的一场战斗中,由于义军疏忽大意,皇甫嵩“潜夜勒兵”,鸡鸣时进扑义军阵地。义军仓促接战,张梁阵前牺牲。与张梁一道战死的有三万多人,其余不甘屈服,投河而死者五万余人。同年十一月,皇甫嵩军又攻破下曲阳,张宝等十多万义军被杀害。残暴的东汉统治者对农民展开了血腥的报复,因张角已先病死,竟棺戮尸,传首京师,并在下曲阳城南积尸封土,筑为“京观”。这种野蛮的行径,并没能改变东汉统治者覆灭的命运。
黄巾军的主力虽然被镇压,但是农民的反抗斗争并未停止。中平二年(185),黄巾余众和各地饥民,又举起各种各样的旗帜,活动在黄河以北的原野上。据《后汉书·朱隽传》云:“自黄巾贼后,复有黑山、黄龙、白波、左校、郭大贤、于氐根、青牛角、张白骑、刘石、左髭丈八、平汉、大计、司隶、掾哉、雷公、浮云、飞燕、白雀、杨风、于毒、五鹿、李大目、白绕、畦固、苦蝤之徒,并起山谷问,不可胜数。”其中大者二三万,小者六七千。黑山军首领张燕(即张飞燕,原姓褚,张牛角战死,改姓张)联络太行山东西各郡农民军,发展成为百万人的队伍,号黑山军,势力最为强大。他们长期坚持抗击官军和袁绍割据势力的斗争。继黄巾军而起的暴动集团人数众多,但由于缺乏统一领导和组织,各个集团分散行动,互不相属,因而不能集中力量,整齐步伍,向着共同的敌人进军。张燕虽与诸山谷“寇贼”更相交通,但他并不能把各集团领导起来,而且他的反抗意识并不坚定,起事后不久,即“遣使至京师,奏书乞降”,被东汉政府任命为平难中郎将,使领河北诸山谷事。
中平五年(188),当时分散在青州、徐州、兖州、豫州、并州的黄巾军余部,再次发动起义。如郭太起于西河白波谷(今山西襄汾),活动于太原、河东诸郡,抗击董卓的军队。同年十月,青、徐一带黄巾复起,声势巨大。徐州黄巾军为陶谦阻击后,攻破北海。北海太守孔融慑于起义威势,出屯都昌(今山东临朐境),复被起义军管亥所部包围,直到刘备兵到才解围。青州黄巾再起后,先后进攻泰山、兖州、东平等地,杀死任城相郑遂,兖州刺史刘岱,发展至百万人。曹操倾全力阻击这支义军,在寿张东与义军“昼夜会战”,被义军击败,济北相鲍信被杀。义军人数虽多,但妇女老幼等非战斗人员占三分之二以上,军需供应全靠“钞略”补给,这就为其流动作战带来极大困难。初平三年(192)这支义军被曹操所收降,曹操简其部分精锐,组成“青州兵”,成为他后来统一北方的一支重要军事力量。而黑山军在被东汉政府招抚后,后又“渐寇河内,逼近京师”,直至建安十年(205年)夏四月,才由张燕率领其众十余万人归降曹操。黄巾大暴动,至此宣告结束,但东汉政权,也被割据势力所瓜分,历史进入豪族混战的局面,东汉王朝名存实亡。