与此同时,北地的先零羌,以及枹罕、河关的盗贼发动叛乱,他们拥立湟中义从胡的北宫伯玉、李文侯为将军,杀死护羌校尉泠征。金城人边章、韩遂在西州一带很有名望,这群盗贼把他们劫持过来,让他们掌管军事。边章、韩遂杀了金城太守陈懿,还四处攻打州郡。
以前,武威太守仗着朝中有人,贪赃枉法、胡作非为。凉州从事、武都人苏正和调查后,要治他的罪。刺史梁鹄害怕牵连到自己,想杀了苏正和灭口,就去问汉阳长史、敦煌人盖勋的意见。盖勋和苏正和向来有仇,有人劝盖勋趁这个机会报复,但盖勋说:“为了掩盖阴谋杀害好人,这不是忠诚;趁人之危报复,这不是仁义。”他还劝梁鹄:“养鹰就是为了让它捕猎,要是它抓住猎物就被煮了,那养它还有什么用?”梁鹄这才打消念头。苏正和想去感谢盖勋,盖勋却避而不见,说:“我是为梁使君出谋划策,不是为了苏正和。”两人的仇怨还是和以前一样。后来,刺史左昌挪用了几万军粮,盖勋前去劝阻,左昌大怒,派盖勋和从事辛曾、孔常到阿阳驻扎抵御贼寇,想找机会借军事问题治他的罪。但盖勋屡立战功。等到北宫伯玉攻打金城时,盖勋劝左昌去救援,左昌不听。陈懿被杀后,边章等人又把左昌围困在冀城。左昌只好召盖勋等人来救,辛曾等人犹豫不决,不想前去。盖勋生气地说:“当年庄贾迟到,穰苴就挥剑斩了他。如今的从事,难道比古时候的监军还重要?”辛曾等人这才害怕地跟着去了。盖勋到了冀城,斥责边章等人背叛朝廷。边章等人说:“左使君要是早点听您的话,派兵来打我们,我们或许还有改过的机会;现在我们罪大恶极,投降也没用了。”说完就解围而去。后来,叛乱的羌人把校尉夏育围困在畜官,盖勋和州郡军队前去救援,在狐盘被羌人打败。盖勋身边只剩不到一百人,自己也受了三处伤,但他仍端坐不动,指着木牌说:“把我的尸体放在这儿!”句就种羌的滇吾拦住手下说:“盖长史是个贤人,杀了他就是违背天意。”盖勋仰头大骂:“该死的反贼,你们怕什么,快来杀我!”羌人听了都很震惊。滇吾下马把马让给盖勋,盖勋不肯骑,最终被羌人俘虏。羌人佩服他的英勇忠义,没敢加害,还把他送回汉阳。后来,刺史杨雍上表举荐,盖勋兼任汉阳太守。
张曼成死后,他的残余部下推举赵弘为首领,黄巾军的势力又壮大起来,达到十多万人,他们占据宛城。朱俊和荆州刺史徐璯等人合兵围困宛城,从六月一直打到八月,都没能攻破。有关部门上奏,请求召回朱俊。司空张温上书说:“以前秦国任用白起,燕国任用乐毅,都是历经多年才打败敌人。朱俊讨伐颍川已经有了战果,如今他率军南下,作战方略也已制定。临阵换将是兵家大忌,不如再给他一些时间,让他将功赎罪。”皇帝这才作罢。朱俊继续进攻,终于斩杀赵弘。但黄巾军又推出韩忠为首领,继续据守宛城抵抗。朱俊擂鼓攻打宛城西南,韩忠把全部兵力都调去防守;朱俊却亲自率领精锐从东北方向突袭,登上城墙杀入城中。韩忠只好退守内城,惶恐之下请求投降。将领们都想接受,朱俊却说:“打仗有时看似情况相同,实际形势却不一样。当年秦末和楚汉相争时,天下没有固定的君主,所以要奖赏归降的人,鼓励更多人来投奔。但现在天下一统,只有黄巾军造反。接受他们投降,无法起到劝人向善的作用,只有坚决讨伐,才能起到惩戒的效果。要是这次接受投降,以后他们尝到甜头,有利就进攻,失利就乞降,这是纵容敌人,绝非良策。”于是下令继续猛攻,但连续进攻都没能成功。朱俊登上土山观察敌情,对司马张超说:“我明白怎么回事了。敌人现在外围坚固,内营被困,我们不接受投降,他们又冲不出去,所以才拼死抵抗。万人一心,尚且难以抵挡,何况十万大军!不如撤掉包围圈,集中兵力攻城。韩忠看到包围解除,肯定会出城逃跑。一旦出城,军心就散了,到时候就好对付了。”果然,朱俊一撤围,韩忠就带兵出战,朱俊趁机出击,大破敌军,斩杀一万多人。南阳太守秦颉却趁乱杀了韩忠。剩下的黄巾军又推举孙夏为首领,退回宛城驻扎。朱俊加紧进攻,司马孙坚一马当先,率先登城。癸巳日,汉军攻破宛城,孙夏逃走。朱俊追到西鄂精山,再次打败黄巾军,又斩杀一万多人。至此,黄巾军主力被打散,其他州郡陆续平定叛乱,每个郡都斩杀了几千名黄巾军。十二月,己巳日,皇帝大赦天下,改了年号。
豫州刺史、太原人王允打败黄巾军后,缴获了张让宾客和黄巾军勾结的书信,并上奏朝廷。皇帝因此斥责张让,张让赶紧磕头谢罪,最后竟然没被治罪。从此,张让怀恨在心,找机会诬陷王允,导致王允被捕