問計於諸謀士。謀士劉曄道:“可做發石車破之。”操令其進圖樣,連夜趕製發石車數百輛,分佈於營牆內,正對著土山。第二日,待紹軍發箭時,操令投石車發動。一時間,炮石如雨,紹軍死傷甚眾,山頭不能立足,土山圍寨之計立破。審配見計不成,又生一計。令諸軍挖地道以通操寨,操大笑,命人於寨四周掘丈餘深長塹。紹兵挖至長塹,無法前進,地道之計又破。
於是如此這般,紹軍主攻,曹軍主守。從八月一直相持至九月,互不能勝。操因近年糧草不豐,漸感不支,欲領兵於許昌。遂問計於戲志才。戲志才道:“不可,官渡扼許昌之咽喉,官渡若失許昌難保也。必須堅守以待其生變。”操信其言,遂盡力守禦,亦令人急赴許昌催糧。
不料催糧信使被紹軍拿獲,報於許攸,許攸大喜。報知袁紹,欲派一軍往襲許都,紹正疑惑間,鄴城有使來報,許攸縱使子侄索侑貪汙,已被緝拿在獄。紹大怒,以攸為操為臥底。欲斬之,眾將告免。
許攸見其不能成事,遂連夜奔曹操而去。曹操聞許攸來投,跣足出迎。攸相問於操,知操糧盡,可有破袁紹之策也。操苦思無計。許攸遂盡言道:“袁紹之糧俱屯於烏巢,而守將淳于瓊喜酒貪杯,日夜痛飲,不足為懼。可令一軍喬裝紹軍,奇襲烏巢。烏巢若破,紹軍無糧,三五日必潰散也。”曹操大喜,遂急起一軍,詐稱紹將蔣奇,星夜來燒烏巢糧草。淳于瓊此時正大醉,臥於帳中。聞帳外人聲沸騰且火光熊熊,方知不好。正欲出帳,被曹軍捅入,撓鉤手將其拖翻在地,捆往見操。操令將其割去耳鼻,放回見紹。後被紹怒斬之。
卻說袁紹在大帳中,見烏巢處火光沖天,若烏巢有失。急出帳召眾將商議。審配道:“烏巢重地,不容有失,可急令鞠義統兵往救。”
郭圖道:“不可,恐事已不及。曹軍劫糧,曹操必然親往,大寨必空虛。可令韓猛等將領兵襲其後,必能大勝。操聞大營有失,必急回軍來救。此乃‘圍魏救趙‘之計也。”袁紹拿不定主意,遂令蔣奇領兵一萬往救烏巢,鞠義、韓猛領兵去劫曹操大營。審配見紹不用其謀,亦是不樂。
蔣奇領兵於路被曹操得勝大軍詐稱烏巢敗兵偷襲,大敗戰死。鞠義、韓猛將亦被戲志才領曹仁、曹洪等數路伏兵殺退。至第二日,紹軍聞烏巢糧草俱已被焚,兵無鬥志,將無戰心。被曹操趁夜襲寨,大破之。紹軍無鬥志,皆潰。袁紹不入著衣,單衣幅巾上馬,逃過黃河,奔往黎陽,隨者只有八百騎。黎陽守將袁紹大將蔣義渠得報,引大軍將袁紹接入黎陽,紹方驚魂初定。蔣義渠見大軍已潰,便令豎聚兵大旗。眾潰兵聞紹仍在,又復蟻聚,大將鞠義也復奔回。唯有韓猛不及逃亡,死於亂軍之中。
袁紹歸冀州後,心煩意亂不能理事,身體漸有不適。又聞其長子袁譚領兵五萬自青州來,次子袁熙領兵五萬自幽州來,外甥高幹領兵五萬自南皮而來。紹大喜並其幼子袁尚共三子一甥領兵二十餘萬復來戰曹操。
兩軍相遇於倉亭,曹軍大將史渙出馬,被紹幼子袁尚所斬,敗了一陣。謀士董昭獻十面埋伏之計,令許褚領兵往劫紹營,其餘各將分分十隊各自埋伏。許褚領命詐作劫營之勢,袁紹寨中大兵急起,來戰許諸。許褚佯作大潰,引紹兵至黃河邊,許褚大呼曰:“後無退路,諸軍若不死戰,皆死無葬身之地也。”諸軍為得命,各自死戰。袁紹不能勝,竟被殺退。時十路伏