建安五年二月,袁紹駐軍黎陽(yáng),派大將顏良攻打白馬,同時(shí)派大將文丑進(jìn)攻延津,主戰(zhàn)場(chǎng)是在白馬。駐守白馬的守將是劉延,劉延有三千人,打到建安五年四月的時(shí)候劉延頂不住了,給曹操寫信求援,曹操也知道劉延頂不住,決定增援白馬。這時(shí)曹操的謀士荀攸的就跟曹操說(shuō),咱不打白馬,我們打延津,曹操馬上就明白過(guò)來(lái)了,聲東擊西。不打白馬,軍隊(duì)從延津出發(fā)渡過(guò)黃河,做出一副要包抄袁紹后路的這樣一個(gè)架勢(shì),袁紹一定會(huì)上當(dāng)受騙,增援延津。曹操采納了荀攸的建議,率領(lǐng)一支部隊(duì)大張旗鼓地向延津方向挺進(jìn),故意讓袁紹的偵察兵知道,果然袁紹上當(dāng)受騙,派出人馬增援延津。但是曹操走到半路的時(shí)候,曹操下令部隊(duì)原地休息,派一支輕騎兵抄小路直撲白馬,這其中有一位將軍就是關(guān)羽。
關(guān)羽為什么會(huì)在曹營(yíng),公元199年末,曹操部署和袁紹作戰(zhàn)時(shí),劉備起兵反抗曹操,并積極與袁紹聯(lián)系,打算合力夾攻曹操。曹操親自率領(lǐng)精兵攻打劉備,一舉占領(lǐng)了沛縣,收復(fù)了徐州,劉備全軍覆敗,帶領(lǐng)少數(shù)兵馬逃往河北投奔到了袁紹的帳下。關(guān)羽無(wú)力抵抗,投降了曹操。
關(guān)羽投降曹操以后,曹操對(duì)他非常好,關(guān)羽決定:為曹操立下汗馬功勞以后再回去找他哥哥劉備。那么關(guān)羽還有其他將領(lǐng)帶著這支輕騎兵撲到白馬,顏良措手不及,被關(guān)羽力斬馬下。這個(gè)時(shí)候,袁紹才發(fā)現(xiàn)是上當(dāng)了,中了聲東擊西,調(diào)虎離山之計(jì),然后派劉備和文丑轉(zhuǎn)過(guò)來(lái)攔截曹操。曹操很清楚,白馬這個(gè)地方雖然解圍了,但是這個(gè)地方不能再守,袁紹一定會(huì)反撲過(guò)來(lái),白馬一定守不住。曹操?zèng)Q定帶著白馬的老百姓沿著黃河往延津走。曹操帶著這么多白馬的老百姓往延津走,當(dāng)然是走得很慢了,結(jié)果呢,撞上了劉備和文丑的軍隊(duì)。
曹操來(lái)到了延津東南面的一個(gè)山坡上,正準(zhǔn)備休息。哨兵向曹操報(bào)告,前面來(lái)了幾百個(gè)騎兵,過(guò)一會(huì)兒哨兵又報(bào)告,說(shuō)來(lái)了一千騎兵,步兵數(shù)都數(shù)不清。曹操下命令,部隊(duì)下馬,原地休息。將領(lǐng)就不懂了,說(shuō)敵人都撲過(guò)來(lái)了,我們應(yīng)該上馬準(zhǔn)備啊,我們?cè)趺聪埋R原地休息呢?再說(shuō)我們從白馬運(yùn)過(guò)來(lái)那些輜重,就是糧食、布匹,七七八八的東西都在路上呢,我們起碼要把這些東西都運(yùn)回軍營(yíng)去,準(zhǔn)備迎戰(zhàn)吧。曹操說(shuō)你不要管,都給我下馬,坐在地上休息。這是曹操的誘敵之計(jì),果然劉備和文丑帶著騎兵沖過(guò)來(lái)以后看到一地的東西,都是好東西啊,全部都下馬來(lái)去撿那些東西,搶那些寶貝,這個(gè)時(shí)候曹操一聲令下,上馬!沖鋒號(hào)吹起來(lái),戰(zhàn)鼓擂起來(lái),殺聲喊起來(lái),六百鐵騎從高坡上傾斜而下,頓時(shí)打得袁軍滿地找牙,文丑也被立斬馬下。這次戰(zhàn)爭(zhēng)以后,關(guān)羽就留下一封感謝信,封存了曹操給他所有的賞賜,騎上他的赤兔馬去尋找那個(gè)比兔子跑得還快的哥哥去了。文丑被殺了以后劉備是掉頭就跑,劉備這人這個(gè)本事還是比較大的。
曹操聲東擊西,攻其不備,打了袁紹一個(gè)措手不及,不僅解了白馬之圍,還折了袁紹兩員大將,曹軍可以說(shuō)是初戰(zhàn)告捷。
曹操心里很明白,自己其實(shí)不是袁紹的對(duì)手,袁紹當(dāng)時(shí)號(hào)稱是十萬(wàn)精銳部隊(duì),曹操呢,按照《三國(guó)志》的說(shuō)法,不足一萬(wàn)。當(dāng)然,給《三國(guó)志》做注的裴松之認(rèn)為這個(gè)數(shù)字是不準(zhǔn)確的,曹操的軍隊(duì)怎么算也不只一萬(wàn)人,估計(jì)也就是兩三萬(wàn),肯定是以少勝多,以寡敵眾。于是曹操打勝了仗,退軍官渡。袁紹他覺(jué)得曹操打勝了仗還往回跑肯定是膽怯,應(yīng)該前進(jìn),于是袁紹就進(jìn)軍官渡。曹操的后退拉長(zhǎng)了敵方的補(bǔ)給線。在白馬打仗曹操的補(bǔ)給線長(zhǎng),在官渡進(jìn)行戰(zhàn)爭(zhēng)袁紹的補(bǔ)給線長(zhǎng),所以曹操叫做敵進(jìn)我退。但是退到官渡呢,曹操也無(wú)路可退了,于是袁紹就在官渡這個(gè)地方扎起了營(yíng)壘,曹操也相應(yīng)地扎起了營(yíng)壘,戰(zhàn)爭(zhēng)進(jìn)入“相持階段”。
雙方的相持,讓曹操身心俱疲,曹操不想打了,太累了,受不了了,他寫了一封信給留守在許都的荀彧尋求撤退意見(jiàn),遭到荀彧堅(jiān)決反對(duì)。荀彧告訴曹操,這一仗咱們打也得打,不打也得打,袁紹這一回是傾巢而出,家底全部拿出來(lái)了,就是要和我們決一死戰(zhàn),他是不會(huì)善罷甘休的,你退他還要進(jìn),你沒(méi)有退路了,只能頂住。那么曹操又去征求賈詡的意見(jiàn),賈詡說(shuō),曹公啊,你有四個(gè)方面比袁紹強(qiáng):你的智慧超過(guò)袁紹,勇敢超過(guò)袁紹,用人超過(guò)袁紹,決斷超過(guò)袁紹,你有四個(gè)方面超過(guò)袁紹,為什么打了半年還不能勝利呢?根本原因是你總想萬(wàn)無(wú)一失,你顧慮太多了,只要你下定決心,集中兵力,一定能夠勝利。
此時(shí)曹袁雙方相持不下,各有損耗。后面發(fā)生的幾件事,使這場(chǎng)戰(zhàn)爭(zhēng)進(jìn)入了轉(zhuǎn)折。
第一件事情,劉備開(kāi)溜。官渡之戰(zhàn)相持階段的時(shí)候,劉備跟袁紹說(shuō),這樣打下去不行啊,我們是不是應(yīng)該聯(lián)合一下南方的劉表,我們聯(lián)合劉表讓劉表在南方攻打曹操一下,這盤棋不就活了嗎。袁紹一想有道理啊,就批準(zhǔn)劉備帶著自己的軍隊(duì)去聯(lián)合劉表。這個(gè)事當(dāng)時(shí)沒(méi)有引起足夠的注意,我覺(jué)得這是一個(gè)轉(zhuǎn)折點(diǎn)。
第二件事情,許攸叛逃。許攸叛逃的原因有三個(gè)說(shuō)法,第一個(gè)說(shuō)法是許攸貪財(cái),袁紹不能滿足他,所以他投奔曹操。第二個(gè)說(shuō)法是許攸的家人為非作歹,被留守在鄴城的審配下了大獄,導(dǎo)致許攸叛逃。第三種說(shuō)法是許攸向袁紹建議,我們現(xiàn)在應(yīng)該抄小路到許都去把天子劫持了,袁紹不采納他的建議,所以叛逃。其實(shí)這三種說(shuō)法是可以統(tǒng)一起來(lái)的,那就是許攸發(fā)現(xiàn)他在袁紹這里計(jì)謀也不能得到使用,他投奔曹操。許攸這個(gè)人是很重要的,他是袁紹最早的謀士,掌握了大量的軍事機(jī)密,而且他這個(gè)人是非常聰明的、有很多主意的人。他一投奔曹操,曹操拍手大笑,吾事濟(jì)矣,這下我這個(gè)事好弄了。許攸一投奔曹操,馬上就跟曹操出了一個(gè)主意:火燒烏巢。烏巢這個(gè)地方是袁紹的囤積軍糧的地方,是個(gè)糧庫(kù)。許攸給曹操出主意,派騎兵突襲烏巢,一把火把袁紹的軍糧燒它個(gè)干凈,曹操馬上采納這個(gè)計(jì)策,連夜趕往烏巢。
在這個(gè)時(shí)候,就發(fā)生了第三件事情,張郃反水。張郃也是袁紹手下的一員大將,比顏良、文丑其實(shí)還好,顏良、文丑是有勇無(wú)謀,張郃是有勇有謀。當(dāng)時(shí)袁紹這面得到曹操奇襲烏巢的消息以后,張郃就向袁紹提出來(lái),必須立即增援烏巢,如果我們把烏巢丟了,我們連退路都沒(méi)有了,我們肯定是一敗涂地。但是袁紹手下謀士郭圖不贊成,郭圖認(rèn)為我們現(xiàn)在應(yīng)該去打官渡,我們一打官渡,那曹操走到一半兒他就會(huì)回來(lái)救官渡,烏巢之圍不解自救。袁紹覺(jué)得郭圖這個(gè)辦法好,就采納郭圖的辦法,派輕兵去救援烏巢,派重兵去攻打官渡。張郃說(shuō),主公這樣不行,官渡這個(gè)地方是曹操的大本營(yíng),我們哪里是一會(huì)兒工夫能夠拿下來(lái)的,要能夠拿下來(lái)我早拿下來(lái)了,我們打了這么久就因?yàn)樗貌幌聛?lái),救烏巢吧!袁紹說(shuō)不不不,就這樣,打官渡。結(jié)果怎么樣呢?烏巢失守,軍糧全部燒光,而官渡打不下來(lái)。這個(gè)結(jié)果就證明郭圖的這個(gè)主意出錯(cuò)了,郭圖就很緊張,緊張以后他干什么事?他跑到袁紹那兒去打小報(bào)告,說(shuō)主公,張郃聽(tīng)說(shuō)我們丟了烏巢他幸災(zāi)樂(lè)禍,他說(shuō)證明他正確。郭圖拿準(zhǔn)了袁紹這個(gè)家伙死要面子,袁紹馬上起了疑心。張郃一看這下子完了,前方失利,后院失火,走投無(wú)路,和他部下高覽一合計(jì),算了,咱投降吧,把戰(zhàn)車一燒,舉起旗子來(lái)投降曹操。
這個(gè)時(shí)候張郃是在官渡,曹操在烏巢還沒(méi)有回來(lái),正在從烏巢回來(lái)的路上,守官渡的是曹操的軍師荀攸和曹操的大將曹洪。當(dāng)時(shí)張郃和高覽帶著部隊(duì)來(lái)投降,曹洪說(shuō)這是真降還是詐降?荀攸說(shuō)不要猶豫了曹將軍,趕快開(kāi)門,肯定是真投降,打開(kāi)營(yíng)門,張郃進(jìn)來(lái)。張郃投降以后曹操?gòu)臑醭惨不貋?lái)了,大喜過(guò)望,拉住張郃的手,這是韓信降了劉邦??!
劉備開(kāi)溜,袁紹失了外援。許攸叛逃,袁紹丟了智囊。張郃反水,袁紹折了臂膀。三件事情都證明袁紹大勢(shì)已去,戰(zhàn)爭(zhēng)迅速進(jìn)入了“決勝階段”。就是曹操按照賈詡的建議,集中兵力進(jìn)行反攻,而袁紹這邊已經(jīng)軍心大亂了,不堪一擊,袁紹本人帶著他的長(zhǎng)子袁譚跳上馬掉頭就往北跑,什么都顧不上了。稀里嘩啦的,這場(chǎng)戰(zhàn)爭(zhēng)就結(jié)束了。
官渡之戰(zhàn),以曹操的全面勝利而宣告結(jié)束,曹操以少勝多,出奇制勝地?fù)魯×嗽B的十萬(wàn)大軍。這一戰(zhàn),使曹操最終在黃河中下游流域、當(dāng)時(shí)中國(guó)最繁榮、文化最發(fā)達(dá)的地區(qū)奠定了他無(wú)可爭(zhēng)辯的統(tǒng)治地位。而失敗了的袁紹最終的下場(chǎng)和命運(yùn)又將怎樣呢?
建安七年五月,袁紹發(fā)病嘔血而死。建安九年,袁紹的接班人袁尚被曹操擊敗。建安十年,袁紹的長(zhǎng)子袁譚被曹操所殺。建安十二年九月,遼東太守公孫康謀殺了袁紹的接班人袁尚和袁紹的二兒子袁熙,把這兩個(gè)人的人頭送到了曹操的帳下,從此袁氏集團(tuán)滅亡。北部中國(guó)基本上是曹操的了。