且說韓猛帶著敗軍回到營寨,袁紹大怒,想要斬殺韓猛,眾官求情才得以免死。審配說:“行軍打仗以糧食最為重要,不可不用心提防。烏巢是屯放糧草的地方,必須派重兵把守。”袁紹說:“我的計策已經確定。你可以回鄴都監督糧草,不要讓糧草短缺。”審配領命而去。袁紹派遣大將淳於瓊,帶領督將眭元進、韓莒子、呂威璜、趙睿等,率領兩萬人馬,守衛烏巢。那淳於瓊性情剛烈,喜好飲酒,軍士大多畏懼他;到了烏巢之後,整天與各位將領聚在一起喝酒。且說曹操軍糧告急,急忙派使者前往許昌,讓荀彧趕緊籌辦糧草,星夜送到軍前接濟。使者帶著書信前往,走了不到三十裡,被袁軍捉住,捆綁起來去見謀士許攸。那許攸字子遠,年輕時曾與曹操是朋友,此時在袁紹處擔任謀士。當下搜出使者攜帶的曹操催糧的書信,直接來見袁紹說:“曹操在官渡屯兵,與我們相持已久,許昌必定空虛;如果分一支軍隊星夜襲擊許昌,那麼許昌可以攻下,曹操也可以擒獲。如今曹操糧草已儘,正可趁此機會,兩路夾擊他。”袁紹說:“曹操詭計多端,這封信是誘敵之計。”許攸說:“如今若不采取行動,日後必將反受其害。”正說著,忽然有使者從鄴郡來,呈上審配的書信。信中先說起運糧的事;後麵又說許攸在冀州時,曾經大肆收受民間財物,還縱容子侄輩多征收賦稅,錢糧都落入自己腰包,如今已經把他的子侄收押入獄了。袁紹看信後大怒說:“你這個品行不端的匹夫!還有臉在我麵前獻計!你與曹操有舊交情,想必現在也收受了他的財物,做他的奸細,來哄騙我的軍隊!本應斬首,現在暫且把你的頭寄在脖子上!趕緊出去,今後不許再相見!”許攸出去後,仰天歎息說:“忠言逆耳,這小子不值得與他謀劃大事!我的子侄已經遭到審配的陷害,我還有什麼臉麵再見冀州的人呢!”於是想要拔劍自刎。左右的人奪下他的劍勸說道:“您何必輕生到這種地步?袁紹聽不進直言,日後必定會被曹操擒獲。您既然與曹公有舊交情,為何不棄暗投明呢?”就這兩句話,點醒了許攸;於是許攸徑直去投奔曹操。後人有詩感歎道:“本初豪氣蓋中華,官渡相持枉歎嗟。若使許攸謀見用,山河爭得屬曹家?”
許攸悄悄走出營寨,徑直前往曹營,被守路的軍士捉住。許攸說:“我是曹丞相的老朋友,快給我通報,就說南陽許攸來求見。”軍士急忙報告到營寨中。當時曹操剛剛解衣準備歇息,聽說許攸私奔到營寨,非常高興,來不及穿上鞋子,光著腳出去迎接,遠遠看見許攸,拍手歡笑,拉著他的手一起進入營帳,曹操先向許攸下拜。許攸慌忙扶起他說:“您是漢朝丞相,我隻是一介平民,為何如此謙恭?”曹操說:“您是我的老朋友,我怎敢因為名爵而區分彼此高低呢!”許攸說:“我沒能選擇好主公,屈身於袁紹麾下,進言他不聽,計策他不用,如今特地離開他來見老朋友。希望您能收留我。”曹操說:“子遠肯來,我的大事就有希望了!希望您立刻教我打敗袁紹的計策。”許攸說:“我曾經建議袁紹派輕騎兵乘虛襲擊許都,前後夾攻。”曹操大驚說:“如果袁紹采用了您的建議,我的大事就敗了。”許攸說:“您如今軍中糧草還能支撐多久?”曹操說:“可以支撐一年。”許攸笑著說:“恐怕未必。”曹操說:“能支撐半年。”許攸拂袖起身,快步走出營帳說:“我誠心來投奔,您卻如此欺騙我,這哪裡是我所期望的!”曹操挽留他說:“子遠不要生氣,容我實話實說:軍中糧草實際上隻能支撐三個月了。”許攸笑著說:“世人都說孟德是奸雄,如今果然如此。”曹操也笑著說:“難道沒聽說過兵不厭詐嗎!”於是貼近許攸耳邊低聲說:“軍中隻有這個月的糧草了。”許攸大聲說:“彆瞞我了!糧草已經耗儘了!”曹操驚訝地說:“您怎麼知道的?”許攸於是拿出曹操給荀彧的書信給他看,說:“這封信是誰寫的?”曹操驚訝地問:“您從哪裡得到的?”許攸把抓獲使者的事情告訴了他。曹操拉著他的手說:“子遠既然念及舊交情而來,希望您馬上能教我良策。”許攸說:“明公以孤軍對抗大敵,卻不尋求速勝的方法,這是自取滅亡之道。我有一計,不出三天,讓袁紹的百萬大軍不戰自敗。明公還願意聽嗎?”曹操高興地說:“願意聽聽良策。”許攸說:“袁紹的軍糧輜重,都堆積在烏巢,如今派淳於瓊把守,淳於瓊喜好飲酒,防備鬆懈。您可以挑選精兵,假稱是袁將蔣奇領兵到那裡護糧,趁機燒毀他的糧草輜重,那麼袁紹的軍隊不出三天就會自行大亂。”曹操非常高興,厚待許攸,把他留在營寨中。第二天,曹操親自挑選五千馬步軍士,準備前往烏巢劫糧。張遼說:“袁紹屯放糧草的地方,怎能沒有防備?丞相不可輕易前往,恐怕許攸有詐。”曹操說:“不會的,許攸來投奔,是上天要讓袁紹失敗。如今我軍糧草不足,難以長久相持;如果不用許攸的計策,就是坐以待斃。他如果有詐,怎會留在我的營寨中?況且我早就想劫寨了。如今劫糧這個行動,勢在必行,你不要懷疑。”張遼說:“也必須防備袁紹乘虛來襲。”曹操笑著說:“我已經考慮周全了。”於是讓荀攸、賈詡、曹洪與許攸一起守衛大寨,夏侯惇、夏侯淵率領一支軍隊埋伏在左邊,曹仁、李典率領一支軍隊埋伏在右邊,以防不測。讓張遼、許褚在前麵,徐晃、於禁在後麵,曹操自己帶領眾將在中間:總共五千人馬,打著袁軍的旗號,軍士都背著草,扛著柴,口中銜枚,馬勒住口,黃昏時分,向烏巢進發。當晚星光滿天。且說沮授被袁紹拘禁在軍中,這天夜裡,因為看到眾星明亮地排列著,就命令看守把他帶到中庭,仰觀天象。忽然看見太白金星逆行,侵犯牛宿、鬥宿的分野,大驚說:“大禍將至了!”於是連夜求見袁紹。當時袁紹已經喝醉躺在床上,聽說沮授有密事稟報,就把他喚進來詢問。沮授說:“剛才觀看天象,看見太白金星在柳宿、鬼宿之間逆行,流光射入牛宿、鬥宿的分野,恐怕會有賊兵劫掠的災禍。烏巢是屯放糧草的地方,不可不防備。應該趕緊派遣精兵猛將,在山間小路巡邏哨探,以免被曹操算計。”袁紹憤怒地叱責說:“你是獲罪之人,怎麼敢胡亂言語蠱惑眾人!”於是叱責看守說:“我命令你拘禁他,怎麼敢把他放出來!”於是下令斬殺看守,另外派人監押沮授。沮授出去後,掩麵流淚歎息說:“我軍滅亡就在旦夕之間,我的屍骸不知道會落在何處啊!”後人有詩感歎道:“逆耳忠言反見仇,獨夫袁紹少機謀。烏巢糧儘根基拔,猶欲區區守冀州。”曹操領兵趁著夜色行軍,前麵經過袁紹的彆寨,寨中的士兵問是哪裡的軍馬。曹操派人回答說:“蔣奇奉命前往烏巢護糧。”袁軍看到是自家的旗號,於是不再懷疑。經過好幾處地方,都假稱是蔣奇的軍隊,沒有受到阻礙。等到了烏巢,四更已經過去。曹操讓軍士把周圍的草堆舉火點燃,眾將校擊鼓呐喊,直接衝入。當時淳於瓊剛剛與各位將領喝了酒,醉臥在帳中;聽到擊鼓呐喊的聲音,連忙跳起來問:“為什麼喧鬨?”話還沒說完,就早被撓鉤拖倒。眭元進、趙睿運糧剛剛回來,看到屯糧的地方起火,急忙前來救援。曹軍飛報曹操,說:“賊兵在後麵,請分兵抵抗。”曹操大喝說:“眾將隻管奮力向前,等賊兵到了背後,才可以回頭迎戰!”於是眾軍將無不爭先掩殺。一時間,火焰四起,煙霧彌漫天空。眭元進、趙睿二將驅兵來救,曹操勒馬回戰。二將抵擋不住,都被曹軍殺死,糧草全部被燒光。淳於瓊被擒來見曹操,曹操命令割去他的耳鼻手指,綁在馬上,放回袁紹的營寨以羞辱他。
袁紹在帳中,聽說正北方向火光滿天,知道烏巢有失,急忙出帳召集文武百官,商議派兵前往救援。張郃說:“我與高覽一同前往救援。”郭圖說:“不行。曹軍去劫糧,曹操必定親自前往;曹操既然親自出動,他的營寨必定空虛,可以發兵先攻打曹操的營寨;曹操聽到消息,必定會迅速回軍:這是孫臏圍魏救趙的計策。”張郃說:“不是這樣。曹操足智多謀,外出必定會做好內部防備,以防不測。如今如果攻打曹操的營寨卻不能攻克,淳於瓊等人被擒獲,我們都會被抓住。”郭圖說:“曹操隻顧著劫糧,怎麼會留兵在營寨呢!”再三請求去劫曹營。袁紹於是派遣張郃、高覽率領五千軍隊,前往官渡攻打曹營;派遣蔣奇率領一萬軍隊,前往救援烏巢。且說曹操殺散淳於瓊的部眾,全部奪取他們的衣甲旗幟,偽裝成淳於瓊的部下收兵回寨,走到偏僻的山間小路,正好遇到蔣奇的軍馬。蔣奇的軍隊詢問,他們稱是烏巢的敗軍逃回來,蔣奇於是不再懷疑,驅馬直接過去。張遼、許褚突然趕到,大喝:“蔣奇彆走!”蔣奇措手不及,被張遼斬於馬下,把蔣奇的士兵全部殺死。又派人在前麵假裝報告說:“蔣奇已經殺散烏巢的兵了。”袁紹因此不再派人接應烏巢,隻增兵前往官渡。
張郃、高覽攻打曹營,左邊夏侯惇、右邊曹仁,中路曹洪,一齊衝出:三路攻擊,袁軍大敗。等到接應的軍隊趕到,曹操又從背後殺來,四下圍住掩殺。張郃、高覽奪路逃脫。袁紹收攏烏巢的敗殘軍馬回到營寨,看到淳於瓊耳鼻都沒有了,手腳也都被砍掉。袁紹問:“怎麼會失了烏巢?”敗軍報告說:“淳於瓊醉臥,因此不能抵擋。”袁紹大怒,立刻將淳於瓊斬首。郭圖擔心張郃、高覽回營寨後對證是非,先在袁紹麵前進讒言說:“張郃、高覽看到主公兵敗,心中必定高興。”袁紹說:“為什麼這麼說?”郭圖說:“二人一向有投降曹操的心意,如今派他們去攻打曹營,故意不肯用力,以致損折士卒。”袁紹大怒,於是派遣使者急忙召二人回營寨問罪。郭圖先派人報告二人說:“主公要殺你們了。”等到袁紹的使者到了,高覽問:“主公召喚我們做什麼?”使者說:“不知道什麼原因。”高覽於是拔劍斬殺來使。張郃大驚。高覽說:“袁紹聽信讒言,必定會被曹操擒獲;我們怎能坐以待斃?不如去投奔曹操。”張郃說:“我也早就有這個心意了。”
於是二人帶領本部兵馬,前往曹操的營寨投降。夏侯惇說:“張郃、高覽二人來投降,不知是真是假。”曹操說:“我以恩義對待他們,即使他們有二心,也能改變。”於是打開營門讓二人進來。二人倒轉兵器,卸下鎧甲,拜伏在地。曹操說:“如果袁紹肯聽從二位將軍的建議,不至於失敗。如今二位將軍肯來投奔,就如同微子離開殷商,韓信歸附漢朝。”於是封張郃為偏將軍、都亭侯,高覽為偏將軍、東萊侯。二人非常高興。
袁紹既失去了許攸,又失去了張郃、高覽,還丟失了烏巢的糧草,軍心惶惶。許攸又勸曹操趕緊進兵;張郃、高覽請求擔任先鋒;曹操聽從了他們的建議。立即命令張郃、高覽領兵前往劫袁紹的營寨。當夜三更時分,分三路出兵劫寨。混戰到天亮,各自收兵,袁紹的軍隊折損了大半。
荀攸獻計說:“如今可以揚言調撥人馬,一路奪取酸棗,攻打鄴郡;一路奪取黎陽,截斷袁軍的歸路。袁紹聽到這個消息,必然會驚慌,分兵抵禦我們;我們趁他的軍隊行動時攻擊,袁紹就可以被打敗了。”曹操采用了他的計策,讓大小三軍在四處宣揚。袁紹的軍隊聽到這個消息,到營寨中報告說:“曹操分兵兩路:一路奪取鄴郡,一路奪取黎陽去了。”袁紹大驚,急忙派遣袁譚分兵五萬救援鄴郡,辛明分兵五萬救援黎陽,連夜出發。
曹操探知袁紹的軍隊行動,就分大隊軍馬,八路齊出,直衝袁紹的營寨。袁軍都沒有鬥誌,四散奔走,於是大敗。袁紹來不及披甲,穿著單衣,戴著頭巾上馬;幼子袁尚跟在後麵。張遼、許褚、徐晃、於禁四員將領,帶領軍隊追趕袁紹。袁紹急忙渡河,把圖書、車仗、金帛全部丟棄,隻帶著隨行的八百多騎兵逃走。曹操的軍隊追趕不及,把袁紹遺留下的東西全部繳獲。此戰殺死袁軍八萬多人,血流滿溝,溺水而死的人不計其數。
曹操大獲全勝,把所得的金寶緞匹,獎賞給軍士。在圖書中檢出一束書信,都是許都以及軍中一些人與袁紹暗中往來的信件。左右的人說:“可以逐一點對姓名,把這些人抓起來殺掉。”曹操說:“當袁紹強大的時候,我自己都不能自保,何況其他人呢?”於是命令把這些書信全部燒毀,不再追問。
袁紹兵敗逃跑,沮授因為被囚禁,來不及逃走,被曹軍擒獲,押來見曹操。曹操一向與沮授相識。沮授見到曹操,大聲呼喊:“我不會投降!”曹操說:“本初沒有謀略,不采用你的建議,你為何還如此執迷不悟呢?我如果早得到你,天下就不用擔心了。”於是厚待他,把他留在軍中。沮授卻在營中偷馬,想要回到袁氏陣營。曹操大怒,於是殺了他。沮授至死神色不變。曹操歎息說:“我誤殺了忠義之士啊!”命令用厚禮殯殮,在黃河渡口為他建墳安葬,在他的墓上題字:“忠烈沮君之墓。”後人有詩稱讚道:“河北多名士,忠貞推沮君:凝眸知陣法,仰麵識天文;至死心如鐵,臨危氣似雲。曹公欽義烈,特與建孤墳。”曹操下令攻打冀州。正是:勢弱隻因多算勝,兵強卻為寡謀亡。