袁紹率大軍進攻曹操,在白馬之戰(zhàn)和延津之戰(zhàn)中分別折損了大將顏良和文丑,一時軍中震恐,但袁紹仍然占有軍事上的優(yōu)勢。200年八月,袁紹從駐軍地陽武向前推進,依沙丘扎營,東西達數(shù)十里。曹操也把部隊分開駐扎,與袁紹軍隊在官渡(今河南中牟東北)筑營相對,雙方擺開了決戰(zhàn)的架勢。
曹操出兵與袁紹交戰(zhàn),不能取勝,又退回營壘?!顿Y治通鑒﹒漢紀五十五》《三國志﹒武帝紀》及其引注記述了雙方的戰(zhàn)爭進程。因為曹軍在營壘堅守不出,袁紹軍中即堆起土山,建造高樓,居高臨下地向曹營射箭,曹軍在營中行走,都要用盾牌遮擋飛箭。為了對付,曹軍制成霹靂車,發(fā)射石塊,將袁紹的高樓全都擊毀。袁紹又挖地道進攻,曹軍在營內(nèi)挖一道長長的深溝,以防御地道。江東孫策聽說曹操與袁紹相持不下,準備領(lǐng)兵襲擊許都,但尚未出發(fā)本人就被刺客所殺。
雙方相持了一百多天,曹操兵少糧盡,士兵疲憊不堪,百姓無法交納賦稅,黃河南邊很多人依附了袁紹或與其暗通款曲,曹操非常憂慮。他給荀彧寫信,說準備退回許都,以引誘袁軍深入。荀彧回信說:“袁紹把全部軍隊聚集在官渡,打算與我們決戰(zhàn)。您以弱者抵御強者,如果不能制敵,必會被敵人所制,現(xiàn)在對雙方都是難得的機會。況且袁紹是普通人中的英雄,能聚合人才卻不會任用。以您的神武明智,加上用兵名正言順,還有什么目標不能達到!如今糧食雖少,但還趕不上楚、漢在滎陽、成皋對峙時的困境。那時劉邦、項羽誰也不肯首先向后撤,是因為先退就會屈居劣勢。您以袁軍十分之一的兵眾堅守不動,扼住對方的咽喉使其無法前進,至今已有半年,情勢快要到頭了,必將發(fā)生轉(zhuǎn)折,這是出奇制勝的機會,一定不能丟失?!安懿俾犃塑鲝膭窀妫谑菆允貭I壘,雙方繼續(xù)相持。
曹操看到運輸糧草的人,安撫他們說:“再過十五天,為你們擊敗袁紹,就不再勞苦你們了?!痹B運糧的數(shù)千車輛來到官渡,荀攸對曹操說:“為袁紹軍隊押運糧草的大將韓猛勇敢而輕敵,可以把他擊??!”曹操說:“派誰去合適?”荀攸說:“徐晃可以?!辈懿儆谑桥汕财珜④娦旎闻c史渙在半路截擊韓猛,打敗了運糧的軍隊,并燒毀了輜重。到了十月,袁紹又派大批車輛運送糧草,他讓大將淳于瓊率領(lǐng)一萬多人押送,囤積在袁軍大營以北四十里處的烏巢。
袁紹的謀士許攸說:“曹操用全部兵力來抵抗我軍,守衛(wèi)許都的人少,防備一定空虛,如果派一支隊伍輕裝前進,連夜奔襲,可以攻拔許都,那我們就奉迎天子來討伐曹操,必能捉住曹操。即便他的軍隊沒有潰散,也能使他首尾不能相顧,一定可將他擊敗?!痹B拒絕說:“我一定要先捉住曹操?!鼻『眠@時許攸家里有人犯法,留守鄴城的審配將他們逮捕,許攸知道后非常惱怒,就投奔曹操。
許攸早年與袁紹和曹操都是要好的朋友,袁紹在189年辭絕董卓逃離洛陽后許攸跟隨了袁紹,這次到了官渡前線。曹操聽說許攸來了,等不及穿鞋赤腳出來迎接,他拍手笑著說:“子卿遠來,我的大事成功了!”許攸坐下后問曹操說:“袁軍勢大,你有什么辦法對付?現(xiàn)在還有多少糧草?” 曹操說:“還可以支持一年?!痹S攸說:“沒有那么多,再說一次。”曹操又說:“可以支持半年?!痹S攸說:“您不想擊破袁紹嗎,為什么不說實話!”曹操說:“剛才是開玩笑,其實只可應付一月,怎么辦呢?” 許攸說:“您孤軍獨守,外無救援,而糧草已盡,這是危急的關(guān)頭。袁紹有一萬多輛輜重車,在故市、烏巢,守軍戒備不嚴密,如派輕騎襲擊,出其不意,焚毀他們的糧草軍資,不出三天,袁紹就會自行潰敗?!辈懿俾犃T大喜。
曹操身邊的人懷疑許攸提供的是假情報,荀攸和賈詡認為應該相信,曹操于是留下曹洪、荀攸防守大營,親率五千名步騎兵出擊,使用袁軍的旗號,兵士嘴銜小木棍,綁上馬嘴,以防人馬發(fā)出聲音,夜里從小道出營,每人抱一捆柴草。路上遇到盤問,只回答說:“袁公恐怕曹操襲擊后方輜重,派我們?nèi)ゼ訌娛貍??!甭牭娜诵乓詾檎?,全都沒有介意。到達烏巢后,圍住袁軍輜重四面放火,袁軍大亂。天已漸亮,淳于瓊看到曹軍兵少,即在營外擺開陣勢,因抵擋不住曹軍,遂退守營寨,曹軍開始猛烈進攻。
袁紹聽說曹操襲擊烏巢,對兒子袁譚說:“就算曹操攻破淳于瓊,我若攻取他的大營,他就無處可歸?!迸汕泊髮⒏哂[、張郃去攻打曹軍大營。張郃說:“曹操率精兵前去襲擊,必能攻破淳于瓊,我們的糧食輜重若被毀,則大勢將去,應該先去救援烏巢?!惫鶊D堅持先攻曹操營寨,張郃說:“曹操營寨堅固,必定難于攻克。如果烏巢有失,我們都將成為俘虜?!痹B最后決定派輕騎去援救淳于瓊,而派重兵進攻曹軍大營,但未能攻下。
袁紹的援兵到了烏巢,曹操身邊人說:“敵人的騎兵靠近了,請分兵抵抗?!?曹操怒喝道:“等敵人到了背后,再來報告!”士兵們拼死向前,終于大破袁軍,斬殺淳于瓊等,燒毀了袁軍全部糧草。曹軍將千余袁軍士兵的鼻子割下,將所俘獲的牛馬的嘴唇、舌頭也割下后撤離,袁軍將士看到大為恐懼。郭圖因自己的作戰(zhàn)方案失敗,心中羞愧,他去袁紹那里誣告說:“張郃知道我軍失利竟非常高興?!睆堗A聽說后又恨又怕,就與高覽燒毀了攻營器械去曹營投降。曹洪疑惑不敢接受,荀攸說:“張郃的提議不為袁紹采用,一怒之下來投奔,有什么可懷疑的!”接受了張郃、高覽的投降。
袁紹軍隊前后兩面失利,糧草被焚燒,于是將士驚恐,全軍崩潰。袁紹與袁譚等人戴著頭巾,騎著快馬,與八百騎士渡過黃河向北逃跑,曹軍追趕不及,繳獲了袁紹軍隊的全部輜重和珍寶。袁軍來不及逃跑的其余士卒都投降了,《后漢書﹒袁紹傳》上說的是“余眾偽降”,屬于假投降,被曹操全部活埋,先后殺死的有七萬余人。
官渡之戰(zhàn)以袁紹軍隊的徹底失敗而結(jié)束。袁紹此前經(jīng)歷了白馬之戰(zhàn)、延津之戰(zhàn),在陷入連續(xù)失利的泥潭后,看來他并沒有認真地反思自我,沒有發(fā)現(xiàn)問題作出更改,致使龐大集團的內(nèi)部病狀在官渡之戰(zhàn)中集中爆發(fā)。他沉溺于自我力量強大的表面幻覺中,總以為前兩次失利僅僅是戰(zhàn)場將官的問題,多次拒絕謀士的建議,仍然用平淡無奇的思路去指揮更大的戰(zhàn)役,將官們間的暗中拆臺和相互傾軋加劇,最終一敗涂地。而曹操本人的果敢英勇、處事的機智靈活,以及將士們的精誠協(xié)力在戰(zhàn)役中都得到了充分展現(xiàn),這最后的結(jié)局不是偶然的。官渡決戰(zhàn)從根本上扭轉(zhuǎn)了袁曹雙方的力量對比,更換了天下霸主的座次,也在戰(zhàn)爭史上創(chuàng)造了以少勝多的經(jīng)典戰(zhàn)例。如果說,八年后的赤壁之戰(zhàn)決定了天下能否實現(xiàn)統(tǒng)一,那官渡之戰(zhàn)就是決定著天下將由誰來統(tǒng)一的前提問題,其歷史影響極其巨大。