南陽黃巾軍張曼成起兵,自稱神上使,兵眾數萬人,殺郡太守褚裒,聲勢很大。後來張曼成被後任太守秦頡殺害,黃巾軍就推舉趙弘為帥,黃巾軍又逐漸強盛,兵眾遂達十多萬人,占據宛城(今湖北荊門縣南)。朱俊與荊州刺史徐璆及秦頡合兵圍攻趙弘,敵人從六月到八月圍城,一直攻克不下;有司上奏彈劾朱俊,主張對朱加以懲治,司空張溫上疏靈帝為朱俊辯解:“昔秦用白起,燕任樂毅,都經過曠年曆戰,才得以克敵。朱俊在討伐潁川的黃巾軍時已立有戰功,引師南指,方略已定;臨軍易將,為兵家之大忌,應該寬限時日,責其成功”。靈帝聽從張溫之言而沒有懲治朱俊。朱俊開始向趙弘發動進攻,並殺死了趙弘。黃巾軍的將帥韓忠又重新占據宛城,以抗拒朱俊。朱俊采取聲東擊西的辦法,一方麵鳴鼓攻打城的西南角,黃巾軍以全力抵抗來自西南方向敵人的進攻,使黃巾軍的兵力受牽於此;一方麵朱俊自己率領精銳將士潛到城的東北角,乘虛而進入宛城。韓忠率兵退入小城,被敵人層層圍困,韓忠意覺不能破敵,準備投降。但朱俊卻認為黃巾軍投降隻是迫於目前的窘勢,不完全出於真心,他說:“兵固有形同而勢異者。過去秦、項之際,民無定主,因而對來歸附給予賞賜,對未歸附者施以規勸、招降。而現在天下一統,惟有黃巾叛逆。納降不足以勸善,討伐卻足以懲惡。如果受黃巾投降,更升逆意,使黃巾有利則戰,無利則降,縱長敵寇,決非良計!”因此繼續對黃巾發動緊急攻勢,連戰仍攻克不下。朱俊登高望城,對他的司馬張超說:“賊人現在外圍堅固,內營逼急,乞降不受,欲出不得,所以必會決一死戰。萬人一心勢尚不可擋,又何況有十萬多人呢!我們不如先撤圍,把軍隊合並入城,韓忠看到撤圍,肯定會自動出來,一旦出來士兵的意誌就會渙散,而這正是破敵之道。”隨即敵人撤圍,韓忠果然出戰,朱俊進而發動攻擊,斬殺黃巾軍萬餘人。太守秦頡因對韓忠恨之入骨,因而殺了韓忠。
黃巾軍的餘部又推孫夏為帥,還歸屯居宛城。朱俊又發動急攻,司馬孫堅率眾先登;癸巳,攻下宛城。孫夏敗走,朱俊追到西鄂(今河南南陽市北)精山(在西鄂南),打敗孫夏,黃巾軍被殺者又達一萬多人。於是南陽黃巾軍敗散。
張角率先舉起反抗大旗,各地紛紛響應。諸如黑山、白波、黃龍、左校、牛角、五鹿、羝根、苦蝤、劉石、平漢、大洪、司隸、緣城、羅市、雷公、浮雲、飛燕、白爵、楊風、於毒(各起義軍的別號,如騎白馬的就稱為張白駒,輕捷快速的稱為張飛燕,聲音大的稱為張雷公,胡須長的稱張羝根等等)等各自起兵,大者二三萬人,小者不下數千人。漢靈帝討伐不及,就使出招降的手段,派人拜楊鳳為黑山校尉,統領其他各支黃巾軍,並授以朝廷官職。黃巾軍大股被敵人平定,但響應黃巾軍而起義的及小股黃巾軍依然還有一定的勢力及影響。
中平五年(188年)二月,黃巾軍的小股餘部郭大在西河白波穀(今山西汾城縣東南)起義;六月,益州黃巾軍馬相攻殺刺史郗儉;八月,汝南(今河南新蔡縣北)葛陂黃巾攻設郡縣;十月,青州、徐州的黃巾軍複起,攻打郡縣,殺官吏。漢獻帝初平二年(公元191年)十一月,青州黃巾軍攻打泰山,被太守應劭打敗,轉而攻打渤海,與公孫瓚在東光(今河北東光縣東)發生激戰,結果又被公孫瓚打敗。初平三年(192年)四月,青州黃巾軍在東平(今山東東平縣)擊殺袞州刺史劉岱,東郡太守曹操在壽張打敗黃巾軍,黃巾軍投降。建安十二年(2107年)十月,黃巾軍殺濟南王贇。小股黃巾軍雖不是浩浩蕩蕩,但也攪得統治者坐臥不安。整個黃巾軍起義,曆時之長,斷斷續續,二十多年,蔓延之廣,中原自不必說,延及吳蜀。東漢政權終被推翻。
關東聯軍伐董卓
東漢後期,朝廷鎮壓了黃巾大起義(公元184年)之後,為加強對地方的控製,防止農民起義的再度發生,接受了太常劉焉的建議,於中平五年(188年)將州刺史改為州牧。州牧官階在郡守之上,擁有政權、財權和軍權。由此,地方政府就為州、郡、縣三級。然而,州牧的設置不僅未如朝廷所願,提高中央對地方的控製權力,相反使得地方武裝不斷發展,豪強勢力迅速擴大。他們依仗自己的武裝力量擁兵自重,割據稱雄,給中央政權以直接的威脅,為東漢末年地主豪強的連年混戰埋下了隱患。