少帝昭寧元年,董卓佔據洛陽以後,將何進、何苗等人的部隊併入帳下,同時買通丁原部將呂布,殺死丁原,兼併了丁原的部眾,於是兵勢轉盛(董卓進京之初只有步騎三千多人)。秋九月,董卓兩次大會群臣,討論廢立之事,大儒盧植就公開反對,在蔡鬯等人的勸阻下,董卓才沒有殺掉他,但盧植也因此遭到罷免。
於是董卓最終廢掉了少帝劉辨,改立陳留王劉協為帝,是為漢獻帝劉協,改昭寧年號為永漢。後來董卓毒殺掉何太后以及廢帝劉辨。由於董卓進京,洛陽周圍大軍駐紮,為了解決財政問題,董卓還廢掉了五銖錢,鑄小錢,取洛陽和長安的銅人、飛廉、銅馬等,鼓爐化鑄,造成通貨膨脹。
董卓生性殘暴專橫,朝野上下對其不滿的聲浪越發高漲,許多人也從洛陽逃了出去,其中包括:曹操,袁紹,袁術等是當世英傑。東郡太守橋瑁假托京師三公寫了一封偽造信,移書各州郡,內稱:見逼迫,無以自救,企望義兵,解國患難。
橋瑁這封偽造的信,成了關東眾諸侯起兵討伐董卓的導火線。原本畏懼董卓,同時監視袁紹的冀州牧韓馥採納了治中從事劉子慧的意見,寫信給袁紹,譴責董卓的殘暴,支持袁紹發兵。在橋瑁的檄文發出之後,山東各州郡紛紛起兵響應,至初平元年正月,正式起兵的有兗州、冀州、豫州、青州以及司州的河內郡等地。這個時候,黃河以北包括冀州和河內郡,討伐董卓的核心人物是袁紹,兗州方面則是曹操。
義軍向西集結兵力,袁紹和河內太守王匡屯兵黃河北岸的河內郡,冀州刺史韓馥負責供應其軍糧;兗州刺史劉岱、陳留太守張邈、東郡太守橋瑁、山陽太守袁遺、濟北相鮑信、驍騎校尉曹操屯兵黃河南岸的酸棗;豫州刺史孔胄集結在穎川;青州刺史焦和本來已經率軍過河,打算到河內與袁少軍匯合,但是卻因為黃巾軍入境而被拖住。
徐州的廣陵太守張超,荊州的長沙太守孫堅等人,因為路途比較遠,在之後也加入了討伐董卓的行列。張超隨後進駐酸棗。孫堅率軍進入中原以後,殺死南陽太守張咨,後將軍袁術於是佔據南陽參加討董。
幽州牧劉虞之子劉和逃出洛陽,到袁術處匯合,劉虞派出數錢騎兵遠赴南陽歸劉和指揮。奮武將軍公孫瓚當時在鎮守右北平,派遣其弟公孫越率騎兵一千支援袁術,聽其調遣。之前有人認為公孫瓚沒有起兵反董卓,是錯誤的,從劉虞、公孫瓚等人的行為來看,雖然他們本人沒有奔赴討董戰場,但是也是支持討伐董卓的。
山東諸郡突然反叛,董卓大為驚恐,他一面調集軍隊進行戰爭總動員,一面打算給自己安排後路,也就是遷都長安。春三月初五,董卓車駕進入長安。遷都完成之後,董卓因為袁紹起兵的緣故,十八日殺太傅袁槐、太僕袁基,袁家一門老幼五十餘口,盡遭屠戮。然而,舉兵討伐董卓的山東州郡,大多數部隊戰鬥力並不強,義軍只能深溝高壘抵禦涼州兵。董卓派中郎將徐榮四下出擊,掌握了戰爭的主動權。
集結在穎川的豫州刺史孔胄的部隊很快被徐榮殲滅,支持義軍的穎川太守李旻被生擒。董卓下令讓徐榮將俘虜的義軍士兵全部殺死,手法極其殘忍:以布纏裹,倒立於地,施以熱膏灌殺之(也就是用布纏裹著俘虜,將他們用滾燙的熱油燙死)
中郎將徐榮在穎川獲勝以後,揮軍北進,進攻河內郡。河內太守王匡率領泰山兵屯於河陽津,徐榮以疑兵正面迷惑王匡,然後派遣主力暗渡小平津,與王匡部戰於津北,大破王匡,王匡所部死者略盡。
在北岸取勝以後,徐榮向南岸的兗州諸路義軍集結的酸棗大營進發。曹操認為酸棗未必能守住,於是率軍向西深入兩百多里,打算襲擊徐榮的大後方敖倉,隨曹操一起出征的是濟北相鮑信,張邈部將衛茲等部眾。
鮑信當初就勸袁紹乘董卓軍初到長安,將士疲敝之際襲擊,但是袁紹不敢。之後鮑信回到泰山,擴招軍隊,此時已有步騎兩萬七千餘人,衛茲曾散盡家財資助曹操徵兵,又向張邈請兵三千助陣,加上曹操本部五千餘人,參與這次會戰的兗州軍合計三萬五千多人。徐榮發覺到曹操的目的以後立刻掉轉馬頭,雙方在滎陽汴渠交戰。
徐榮大破兗州兵,衛茲陣亡,鮑信受傷,其弟裨將軍鮑韜也陣亡,曹操被流箭射中受傷,坐騎也被射倒,在危難關頭,曹洪將自己的戰馬讓給了曹操,曹操不許,曹洪於是說下了「天下可無洪,不可無君!」這句名言。隨後曹洪親自護衛曹操撤離戰場。
徐榮大獲全勝,但是他發現曹操雖然潰敗,但其本部兵馬非常善戰,於是沒有下令窮追。
題外話:這場慘敗是曹操起兵以來第一次遭遇的大敗,曹洪對曹操的救命之恩,就連後來曹丕繼位以後想殺曹洪(因為曹洪吝嗇,之前不肯借錢給曹丕),太后卞夫人都不許。衛茲慷慨資助曹操,在這場仗中陣亡,也令曹操銘記終生,後來衛茲的兒子衛臻受朱越謀反案牽連,曹操只是責怪了他幾句,並沒有追究他。衛臻後來賜爵關內侯,曹丕代漢以後,衛臻升司空、司徒、封長恆侯,衛臻死後追贈太尉,謚敬侯。
徐榮在汴渠大破兗州軍以後,兗州軍大營酸棗面臨軍事壓力,好在這個時候,孫堅的軍隊已經控制了豫州戰場,並且開始向司隸發展,董卓急忙將涼州軍的主力部隊投入南線戰場來抵禦孫堅,東線的徐榮於是轉入守勢。
由於之前豫州刺史孔胄已經被徐榮打敗,於是此時孫堅也領豫州刺史,任破虜將軍。
孫堅在梁東為徐榮所敗,之後收合散卒吞陽人,董卓部將東郡太守胡軫督呂布率軍進擊孫堅,由於胡軫和呂布不合,孫堅出擊,大破涼州軍,斬殺都督華雄。
陽人大捷之後,有人對袁術說:「堅若得洛,不可複製,此為除狼而得虎也。」袁術生疑,不運軍糧,孫堅連夜跑到魯陽找袁術,畫地道:「所以出身不顧,上為國家討賊,下慰將軍家門之私仇。堅與卓非有骨肉之怨也,而將軍受僭潤之言,還相嫌疑!」袁術理虧,於是立即調發軍糧。
孫堅軍勢強盛,董卓打算拉攏孫堅,遣李傕來和親,但遭到孫堅拒絕。
在洛陽一帶,董卓親自督戰,調動西涼兵集團(包括之前在陽人大敗的胡軫、呂布的殘兵,從滎陽後撤回來的徐榮軍,以及董卓身邊宿衛的預備隊等),與孫堅在洛陽城外激戰,董卓軍戰敗,退守淹池,孫堅於是乘勝進入洛陽城(由於董卓遷都,所以洛陽此時已經是廢墟和殘骸滿地的空城)
之後孫堅進軍函谷關,擊退呂布軍,進駐新安,逼近淹池。
然而在這個時候,袁紹和袁術由於內鬥,袁紹以義軍主導行車騎將軍的身份,派遣周隅為豫州刺史,乘孫堅收攏兵力西進的機會,攻入孫堅軍佔領的豫州,佔領了大部分郡縣,孫堅歎道「同舉義兵,將就社稷。今逆賊垂破,而各如此,吾當誰與戮力乎?」
孫堅派一部分兵力(主力還要與董卓軍對峙)回擊周隅,袁術派公孫越帶領本部騎兵支援孫堅;同時為了策應孫堅,袁術率自己的部眾攻入揚州九江郡,驅逐九江太守,周隅的兄長九江太守周昂。
雖然孫堅、袁術擊敗了周隅和周昂等人,但在激戰中,公孫越被留箭射中陣亡,公孫瓚悲憤道:「余弟死禍起於紹!」袁紹於是結下了公孫瓚這樣一個強敵,公孫瓚後來大起燕代兵,進屯磐河,討伐袁紹。
初平三年春,孫堅回師進攻趁他北上的時候佔據了荊襄一帶的劉表,劉表死守襄陽,黃祖從江夏、江陵等地調兵前來援助劉表。孫堅率兵攻打,黃祖敗退。但是孫堅在夜間帶領少數隨從偵察敵營的時候被黃祖的巡哨呂公射殺,壽止三十七歲。而早在孫堅攻擊劉表之前,山東諸軍已經散去,自相攻伐。聲勢浩蕩的討董之戰雖然在孫堅的活躍下佔領了洛陽,進逼淹池,但由於眾路諸侯各懷鬼胎,以至於互相攻伐,就此草草了結。後來董卓被王允聯合呂布等人刺殺、公孫瓚在界橋之戰被袁紹軍統帥麴義擊敗,李傕等人攻陷長安等事,俱是後話!