荀彧(音hū)很快回信,力主曹操堅持下去,不能撤軍。他在信中說:“我軍與袁軍的對陣,形勢有點像當年楚、漢相爭的局麵,現在正是尋找戰機的時候,千萬不能退軍!”
曹操覺得信中的話說到他心裏去了,他命令全軍將士一定要死守陣地,他再也不提撤兵了。就在這個時候,曹操的部將徐晃抓到了袁軍一個偵探,他供認一個重要消息:“袁紹派大將軍韓猛運軍糧來了,派我先來探路。”曹操的謀士荀攸知道以後,要曹操派兵劫住袁軍運糧車,全部予以燒毀。
袁紹的謀士審配知道糧車被劫燒以後,對他說:“打仗以糧食為重,烏巢是屯放糧草重地,必須派重兵把守。”袁紹立即派大將淳於瓊率領兩萬精兵加強烏巢護糧兵力。但淳於瓊是個酒鬼,脾氣暴躁,動則鞭苔士兵。他到烏巢以後,每日酗酒,將士們怕他,無人敢勸。袁紹派貪酒將軍護糧,結果誤了大事。
袁紹帳下謀士許攸,是曹操舊友,他截獲了曹操送給許昌荀彧的密信,信中說:“軍中糧草已經用完,望速運糧來。”跑去對袁紹說:“曹操軍糧用盡,他的精兵盡在官渡,許昌必然空虛。主公派支軍隊襲擊許昌,曹操老巢即可搗毀。”但袁紹不信任許攸,因為他剛得到審配從鄴城發來的文書,其中揭發許攸在冀州任職時受人賄賂,他聽許攸獻計以後,不但不給予嘉獎,反而怒衝衝地斥責他:“你的行為不端,有什麼臉麵向我獻計?你與曹操是舊交,想為曹賊行騙嗎?退下,以後不許見我。”
許攸滿以為可以邀功,想不到袁紹給他當頭一棒,他退出帳外,仰天長歎:“天啦!忠言逆耳啊!”他反複考慮,覺得袁紹昏庸無能,遲早必敗,不值得為他效忠,當晚就潛出營去投曹操。
夜深人靜,曹操正躺在床上無法入睡,為軍中缺糧發愁,他聽說許攸深夜求見,高興得連鞋子也來不及穿,光腳出帳迎接,挽著他的臂膀走入大帳,然後朝他拜伏在地上叩頭不已。許攸慌忙扶起曹操說:“您是漢朝丞相,我不過是一個平民百姓,您何必這樣謙恭?”曹操說:“我們是故友,何必分官職上下尊卑呢?”許攸異常感動:“唉,我不會擇主,在袁紹手下謀事,言不聽、計不從,今天特來投奔您啊!”
曹操說:“您肯來我這裏,我的事業就成功了,請您教我破袁紹的計謀。”許攸說:“我有一計,可使袁紹百萬之眾不戰自滅。”他告訴曹操,袁紹的軍糧輜重都積存在烏巢,由一個酒鬼將軍防守,隻要派一支精兵,偽裝成袁軍蔣奇部去烏巢護糧,就可乘機燒掉袁紹軍糧。袁軍無糧,不戰自潰。
曹操十分高興,立即親選五千精兵,偽裝袁軍,連夜趕往烏巢燒糧。沿途哨兵查問時,他們一律回答說“蔣奇將軍奉命去烏巢護糧”,沒有遇到任何懷疑和阻攔,順利通過警戒。曹軍在報曉時分到達烏巢,立即擊鼓衝入糧倉營寨放火。刹時火光衝天,寨內大亂。守將淳於瓊這時正醉倒在床上酣睡,被吵醒後他正要出去查問,立即被曹軍捉獲。曹軍橫衝直闖,見糧囤就燒,見袁兵就殺;烏巢糧倉頃刻化為灰燼,護糧軍士非死即逃。
袁紹見曹軍去烏巢燒糧,估計曹營空虛,便派兵去劫寨,但被曹操預先安排好的伏兵殺得大敗而歸。袁紹70萬大軍沒有了糧食,立時大亂。袁軍內部發生分裂,大將張郃、高覽率所屬部隊投降曹操。曹軍趁機發起總攻,把袁軍殺得落花流水,袁紹父子僅帶800騎兵逃回河北。
官渡之戰創造了以少勝多的軍事奇跡,為曹操日後統一北方奠定了基礎。官渡之戰後不久,袁紹便氣急病死,曹操成為北方首屈一指的領袖人物。