因为土地兼并问题非常严重,整个东汉一朝,从光武帝开始,地方上的农民起义就从来没有停顿过。但是东汉早期,农民们活不下去了,大多上山为盗,就算攻破城邑,杀死官员,也顶多自称个“将军”什么的。和帝朝以后,起义规模越来越大,矛头也直指东汉中央政权。
顺帝建康元年(144),当涂(今安徽蚌埠西南)人马勉起义,自称皇帝。桓帝永兴二年(154),四川李伯起义,自称“太初皇帝”。延熹八年(165),勃海人盖登起义,自称“太上皇帝”。这说明民心已经厌恶了汉朝的统治,百姓已经开始思考改朝换代的问题了。许多起义都是由宗教结社开始的,一种源于道教,名为“太平道”的宗教思想,尤其在民间广泛传播。
桓帝和灵帝时代,太平道的领袖是巨鹿(今河北平乡西南)人张角,他自称“大贤良师”,以传道和治病为名,在农民中秘密活动,十余年间,信徒发展到数十万众。张角不但在地方上活动,还把势力伸展至京都宫廷,贿赂买通了部分宦官,以充耳目。熹平六年(177),司徒杨赐和司徒掾刘陶上奏,请朝廷密切注意张角的动向,结果奏章竟然被宦官给扣下了。
张角宣称:“苍天当死,黄天当立,岁在甲子,天下大吉。”他把弟子们按区域划分为36方,大方万余人,小方六、七千人,各立首领,准备于中平元年(184)三月五日同时发动起义。中平元年是农历甲子年,所以说“岁在甲子”。
他派大弟子马元义进入雒阳,和所买通的宦官封胥、徐奉等人联络,约好里应外合,不料消息泄露,马元义被捕后车裂于市。张角遂被迫提前行动,当年二月,36方并起,义军全都头裹黄巾为标记,故称“黄巾军”。
张角自称“天公将军”,他的两个弟弟张宝和张梁自称“地公将军”和“人公将军”。起义声势浩大,到处焚烧官府,捕杀官吏,抄灭豪强,很快蔓延到青、徐、幽、冀、青、扬、兖、豫8 州的每个角落,大半个中国全都闹腾起来了。
灵帝召集众臣商议对策,北地太守皇甫嵩提出建议,要求大赦党人以笼络人心,要求皇帝将聚敛在西园的钱财拿出来招募和赏赐兵士,同时鼓励各地太守、刺史,以及地方豪强就地征兵,讨伐黄巾起义军。
灵帝无奈之下,只得照准,然后拜卢植为北中郎将,出征河北黄巾,与张角决战,拜皇甫嵩为左中郎将、朱儁为右中郎将,征剿雒阳以南,即河南、湖北地区的黄巾。
这一人事任命,是灵帝平生少有的聪明之举,三将全都智谋过人,娴熟军事。当年四月,朱儁进攻颍川,被黄巾大将波才打败,波才旋即包围皇甫嵩于长社(今河南长葛东北)。五月,皇甫嵩、朱儁及前来增援的骑都尉曹操里应外合,大败波才,杀死黄巾数万人。
六月,皇甫嵩、朱儁等人又连破波才、彭脱等部,控制了颍川、汝南、陈国等地。前此不久,南阳太守秦颉攻杀黄巾宛城大帅张曼成,当地黄巾拥赵弘为帅,继续抵抗。
河北的战局发展就没有那么顺利,卢植面对的是张角主力,费尽心力,才得以将敌军包围在广宗(今河北威县东)。他正准备等待有力时机发起总攻,前来劳军的宦官左丰因为索取贿赂失败,诬告他作战不力。卢植被押解回京审讯,以董卓代替他统领军队。董卓在任两个多月,不能前进一步,灵帝只好调皇甫嵩来河北战场担任总指挥职务。
此时张角已经病死在广宗城中,其弟张梁代为教主。十月,皇甫嵩攻破广宗,张梁战死。官军把张角的尸骨从棺材里刨出来,割下首级,传送去雒阳。十一月,皇甫嵩进攻下曲阳(今河北晋县西北),张宝力战而死。同月,在南方指挥战斗的朱儁终于攻克宛城,杀死了赵弘。随即黄巾推韩忠为帅,反攻宛城,被秦颉杀死,孙夏代其统领南部黄巾,又被朱儁和孙坚打败。至此,坚持了9个月后,黄巾主力陆续覆灭。