北地太守皇甫嵩趁机上书,请求汉灵帝解除党禁,以便从党人中选拔人才为国家效力;同时,又请求汉灵帝拿出自己的私人存款和皇家马场里面的骏马,用来赏赐出征的将士。汉灵帝有些舍不得,便询问中常侍吕强。吕强回答说:“党人一案,已经积怨日久。陛下若是不肯原谅他们,就会逼迫他们与黄巾军合谋。到了那时候,事态就再也无法挽救了。”汉灵帝听了,决定立即采纳皇甫嵩的建议。
中平元年(184年)三月,汉灵帝宣布大赦天下,释放登记在册的全部党人,以及召回被流放到边疆的党人和他们的妻子儿女。唯有张角,不在赦免之列。同月,汉灵帝拜尚书卢植为北中郎将,出征钜鹿郡,讨伐张角;拜皇甫嵩为左中郎将,拜朱儁为右中郎将,各领大军出征颍川郡,讨伐黄巾军波才、张曼成各部。
朱儁的大军还在路上,黄巾军张曼成部已经攻破宛城,击杀了南阳太守褚(chǔ)贡。紧接着,黄巾军波才部大败朱儁,把皇甫嵩围困在长社,日夜在城外叫骂、攻打。同年四月,汝南太守赵谦、幽州刺史郭勋、广阳太守刘卫相继被黄巾军击杀。
话说长社被黄巾军所围,城中兵力单薄,人心惶惶。皇甫嵩召集军官们议事,安慰他们说:“用兵之道,不在人数的多少,而在于奇变。你们看,黄巾军背靠草丛扎营,只需要一个火种和一场大风,就可以烧得他们四散惊逃。等到那时候,我军再趁机出城从四面击杀,就能像战国时代使用火牛阵的田单那样,大获全胜。”到了傍晚,果然大风骤起。皇甫嵩立即选派精兵组队出城,潜入敌营放火。只见火焰四起,势如奔马,敌营顿时烧成一片火海。黄巾军从睡梦中惊醒,四处奔逃。皇甫嵩趁机打开城门,冲杀而出。
骑都尉曹操恰好率领援军赶到。中平元年(184年)五月,皇甫嵩、朱儁、曹操合兵共战,势如破竹,击杀黄巾军数万人之众。同年六月,新任南阳太守秦颉率军在宛下击杀了已在此屯兵百余日的黄巾军渠帅张曼成。皇甫嵩与朱儁接着率军乘胜追击汝南郡、陈国郡的黄巾军。黄巾军渠帅波才逃到阳翟,还没来得及收集残部,就被再次击败。皇甫嵩与朱儁又率军在西华大败黄巾军彭脱部。
与此同时,“天公将军”张角也被北中郎将卢植围困在广宗。只见卢植在县城四周挖掘壕沟,分明是要把张角置于死地。张角满心焦急,几番突围,都被卢植打退。恰在此时,卢植遭到小黄门左丰诬告,被汉灵帝罢免了军职。张角大喜过望,趁机发起反击,一举击溃刚刚上任的东中郎将董卓。汉灵帝大惊失色,急忙调遣皇甫嵩前去救援。张角长于务虚,却短于兵法,在皇甫嵩面前节节败退,只得再一次退守广宗县城。
同年十月,向来以神圣自命的张角忽然暴病而死。他的死,使得他的信徒们惊疑不已。黄巾军内部,因此出现分裂。他的弟弟“人公将军”张梁,虽然继承了他的领导权,却不得不面对人心涣散的复杂局面。皇甫嵩在城外静观其变,情知张梁自顾不暇,便连夜排兵布阵,在鸡鸣时分发起了冲锋。
张梁仓促应战,死在乱军之中。一场混战,从黎明厮杀到中午,又从中午厮杀到黄昏。黄巾军将士共有三万多人阵亡,五万多人在败逃途中投河而死。皇甫嵩率军进驻广宗县城,而后命人挖开张角的坟墓,把他的首级割下来装入特制的木盒,送往洛阳,向汉灵帝请功。