如此,兩軍對峙,相持數日,曹軍兵少糧缺,士卒疲乏。曹操曾想放棄官渡,退守許昌。謀士荀彧寫信勸說:“現在軍需供應雖然很少,但形勢還是沒有楚漢之爭時在滎陽、成皋作戰時嚴峻。那個時候劉邦、項羽都想首先退軍,先退的士氣定會減弱。曹公以袁紹十分之一的兵士,占據把守一地,扼製住敵方的咽喉要道使其不能夠出入,已經有半年的時間了。現在形勢將會出現轉折變化,這正是施展計謀的時機,不可以失去啊。”於是,曹操決心加強防守,苦撐危局,靜觀其變,以尋求戰機。
果然,袁軍內部不久後出現矛盾。謀士許攸給袁紹獻計,讓他趁許都空虛,派一隊人馬繞過官渡,偷襲許都。袁紹不聽,固執地說:“我應當首先把曹軍攻下!”偏巧,許攸家人犯法,已被收監。許攸聞訊,頓時大怒,連夜投奔了曹操。曹操剛脫了靴子想睡,聽說許攸來見,喜不自勝,跳足出迎。一見麵,曹操撫掌笑說:“你來了,我戰勝袁紹大有希望了。”
許攸向曹操提供了袁軍屯糧烏巢防備不嚴的情報,建議曹操出奇兵偷襲,燒其糧草。如果那樣做,“用不了三天的時間,袁紹必定會大敗”。曹操聞之甚喜,便馬上采取行動。他留曹洪、荀攸守大營,自己親率精銳步騎五千人,打著袁軍的旗幟,夜晚悄悄從小路趕到烏巢。半夜抵達後,曹軍圍住糧囤,四麵放火,把袁軍糧草燒為烏有。
糧草被燒的消息傳到前線,袁軍盡皆慌亂不堪,軍心大亂。大將張部、高覽臨陣倒戈,率部投降了曹操。曹軍乘勢猛攻,分線出擊,袁軍四處逃散。袁紹和他的兒子袁譚連盔甲都來不及穿戴,便率領八百騎兵倉皇逃到河北。
官渡戰敗後,袁紹勢力尚存,不料他本人卻對勝敗耿耿於懷,終於積鬱成疾,於建安七年(202年)嘔血而死。而實際上,袁氏集團仍有很強的實力。袁紹的小兒子袁尚占據鄴城,統領袁紹舊部,袁譚、袁熙等仍然控製著黃河以北的大部分地區。
(三)巧平袁氏兄弟
袁紹的幾個兒子不能同心協力,他們各自擴充實力。袁紹在世時,他們為了爭奪嗣位,各自擴充實力,培植黨羽,明爭暗鬥。袁紹死後,審配假傳袁紹遺命,奉袁尚嗣位,袁譚自然心有怨言。袁尚也很疑忌他大哥,撥給袁譚的兵力也就更少了。袁尚又讓逢紀跟從袁譚,名為輔佐,實則監視。袁譚屢次要求增兵,袁尚與審配都不予理睬。憤怒之下,袁譚便殺了逢紀,如此一來,袁氏兄弟之間的矛盾,便迅速尖銳激化起來。
官渡之戰後,曹操讓軍隊先休整了一段時日,然後利用袁尚、袁譚之間矛盾衝突加劇的有利時機,渡過黃河,北上征伐。建安七年(202年)九月,曹軍攻打屯兵黎陽的袁譚,袁譚無力抵抗,情急無奈,隻好向袁尚告急求援。袁尚欲分兵助兄,又怕袁譚借兵不還,如果坐視不救,又怕黎陽有失於己不利,隻好讓審配據守鄴城,自己親率大軍救援黎陽。次年二月,兩軍大戰於黎陽城下,結果,袁譚、袁尚、袁熙、高斡(袁紹外甥)全部大敗,放棄黎陽,退保鄴城。這時曹操已占據了冀州的重要門戶黎陽,為進一步消滅袁氏集團創造了有利的條件。
屢戰屢捷之下,曹軍諸將都想繼續乘勝追擊,一舉攻下鄴城。就在將士們躊躇滿誌之時,郭嘉卻出人意料地提出了一個全新的作戰方案,那就是停止繼續進攻,轉而南征劉表。將士們對這一策略都感到迷惑不解,為什麼不采取急攻策略,一舉攻下鄴城呢,免得以後夜長夢多,以防袁氏兄弟變得難以對付。
郭嘉跟隨曹操打敗了袁紹,在袁紹死後,又跟隨曹操到黎陽討伐袁譚、袁尚,接連幾次戰鬥都打了勝仗。就在將領們想乘勝追擊進攻袁氏兄弟時,郭嘉卻很有把握地解釋說:“袁紹生前疼愛這兩個兒子,而在死前又沒有立嫡子。袁氏兄弟有郭圖、逢紀二人作為謀臣,一定會互相爭鬥,互相周旋離間。若急速進攻,他們就會互相依恃;緩一緩之後,袁氏兄弟就會產生爭鬥之心。不如向南進軍荊州,裝出征討劉表的樣子,用以等待袁氏兄弟的變化,等到他們內部發生變亂後再進攻他們,便可以一舉平定冀州。”曹操對郭嘉提出的消滅二袁的謀略連連稱讚,於是曹軍轉而南征。當大軍來到西平時,袁譚、袁尚兩兄弟果然爭奪起冀州來了。