袁紹自從官渡戰敗後,就一直鬱鬱寡歡,最終染上了重病,在曹操再次來到官渡、虎視眈眈嚴密注視著河北局勢時,到了建安七年(202)五月,袁紹竟然病逝了。袁紹共有三個兒子∶長子袁譚,次子袁熙,幼子袁尚。《典論》稱,袁譚年長而仁義,袁尚年少而俊美,袁紹的後妻劉氏喜愛袁尚,多次在袁紹面前稱讚袁尚的才能,袁紹也感到袁尚的容貌不同凡響,打算立其為繼承人,但一直沒有確定下來,卻將長子袁譚過繼給哥哥為繼子,並將其外派為青州刺史。劉氏個性殘忍、嫉妒,袁紹死後,屍體尚未入殮,劉氏就命人將袁紹生前寵愛的五個妾全部殺死,又害怕死者會在地下與袁紹相見,又將這五個屍首的頭髮剃掉、臉上塗成黑色,毀壞了她們的容貌;袁尚又殺了這五人的全家。
袁譚素來厭惡逢紀、審配二人,而辛評、郭圖又與逢紀、審配二人矛盾很深,遂投靠了袁譚。等到袁紹去世後,眾人都因袁譚年長,打算立其為繼承人,但審配等人擔心一旦袁譚被立,他們會為辛評等人所害,遂謊稱接到了袁紹的遺命,擁立袁尚為繼承人。等到袁譚回到鄴城後,發現袁尚已經奪位,擔任了冀州牧兼鄴侯、督四州軍事,遂只好自稱車騎將軍,率領本部人馬駐紮在黎陽,抵禦曹軍。袁尚只配給他很少一部分軍隊,還命逢紀隨軍監視。袁譚要求給自己增兵,但審配等人擔心袁譚心存不軌,又拒不發兵。袁譚忍無可忍,勃然大怒,遂誅殺了逢紀。
建安七年(公元202年)九月,曹操率軍渡過了黃河,向黎陽的袁譚發起了進攻。袁譚向袁尚告急,袁尚留下審配防守鄴城,親自率領大軍南下救援。《述徵記》稱,在黎陽城西南七里有袁譚城,袁譚城西南三里又有一座城,是曹操進攻袁譚時修築的。《浚縣誌》稱∶袁譚城現在稱作團城。從九月一直打到建安八年(公元203年)二月,在這將近半年時間裡,袁軍與曹軍多次交手,袁譚、袁尚屢戰屢敗,最後,只好退入黎陽城內,固守不戰。
在曹操進攻黎陽時,李典與程昱等人用船運送軍糧。袁尚的魏郡太守高蕃率軍駐紮在黃河岸上,切斷了黃河河道。曹操命令李典、程昱∶ “如果水路不通,就從陸路走。”李典與眾將商議∶ “高蕃的軍隊鎧甲很少,只是依仗有黃河天險,有懈怠之心,警惕性並不高,如果我軍發起攻擊,一定能夠將其擊敗。行軍打仗,連皇帝也不從中制約,只要是對國家有利的,在外的將帥自然可以獨斷專行。我認為應該立即對敵人發起攻擊。”程昱也表示同意,於是,李典遂率領曹軍北渡黃河,一舉擊破了高蕃部,曹軍的糧道遂保持了暢通。
建安八年(公元203年)二月,曹軍進抵黎陽城下,雙方在黎陽城下再次決戰,袁譚、袁尚再次戰敗。曹軍將要把黎陽包圍起來,袁譚、袁尚見情況不妙,遂趁夜撤離黎陽,逃回了鄴城。建安八年四月,曹操率領軍隊一直追到鄴城城下,收割了周邊的小麥,又攻克陰安(今河南省清豐縣北二十里)。
在雙方爭奪河東的同時,袁尚還聯絡荊州牧劉表,從南面牽制曹操,劉表遂派劉備率軍北上,進攻豫州。
經過了精心的準備。劉備率軍從新野北上,一直推進到葉縣(今河南省葉縣),曹操命令偏將軍于禁、裨將軍李典跟隨河南尹夏侯惇率軍抵禦,兩軍在葉縣附近相持了很久。一天,劉備突然燒燬自家營壘,率軍南撤。夏侯惇當即決定與于禁一起南下,留下李典守衛大營。果然,劉備在博望(今河南省南陽市方城縣博望鎮)一帶設下伏兵,夏侯惇等人落入劉備的伏擊圈內,被打得大敗,李典率軍趕來救援,劉備望見曹軍還有援軍,遂撤出了戰鬥。這就是《三國演義》“火燒博望”的來歷,作者把劉備燒燬自家營壘撤退,理解為在伏擊圈裡用火燒曹軍,才演繹出一出"火燒博望"的故事來,而且,此戰規模並不大,當時,諸葛亮並未出山,與他毫無關係。
雖然曹操面臨河東郭援、荊州劉備、正面二袁三面作戰,但在河東地區有文武雙全的司隸校尉鍾繇的妥善應對,在南線,雖然夏侯惇是常敗將軍,但與之對壘的劉備也好不到哪兒去,因此,兩線並沒有給曹操帶來多少麻煩,而真正給曹操帶來麻煩的卻是鄴城的二袁。
按理說,曹軍已經兵臨鄴城城下,西線和南線也都打退了敵人,曹操只需一鼓作氣拿下鄴城即可,或者將鄴城長期圍困也是一個辦法,可是,令人百思不得其解的是,曹軍竟然在五月撤軍了。其間究竟有什麼隱情呢?
《三國志》和《資治通鑑》並沒有給出令人滿意的答案,但《後漢書·袁紹傳》道出了其中的真實原因∶“操軍進,尚逆擊破操,操軍還許。”胡三省據此判斷∶這就是後來諸葛亮在《後出師表》(此表有人認為是後人偽作)中所說的曹操“逼於黎陽”時也,曹操肯定在此戰敗過。盧弼在《三國志集解》中也認為∶既然曹軍已經攻到鄴城城下,哪有來去匆匆的道理?結合後來劉表給袁譚的書信中曾說到“摧嚴敵於鄴都”之語以及在此戰以後曹操就下達了《五月己酉令》(敗軍抵罪令),還有《後漢書·袁紹傳》中袁譚對袁尚說∶趁著曹軍尚未渡過黃河,“出兵掩之,可令大潰”等等這些蛛絲馬跡,可以判斷,曹軍在鄴城城下被袁譚、袁尚聯手擊敗。曹軍的退卻實屬無奈,只是曹魏避諱戰敗才沒有記載而已。
在這種情況下,是繼續滯留鄴城死磕還是撤回許都、以圖後舉?郭嘉向曹操建議道∶“袁紹喜愛他這兩個兒子,臨死前一直不知道該立哪個為繼承人。如今,袁譚、袁尚二人權力相當,各有黨羽,郭圖、逢紀是二人的謀士,必定會在二人之間製造矛盾,二人勢必反目成仇。我們急於進攻的話,他們就會團結起來,一致對外;如果緩一緩,二人必定會相互爭鬥。不如南下荊州,做出要進攻劉表的樣子,以靜觀其變,等到二人相鬥後,再發起進攻,可一舉將其平定。”
據《資治通鑑》記載,此時逢紀已為袁譚所殺,要麼記載錯誤;要麼郭嘉並不知情;要麼《三國志·郭嘉傳》的這一記載本身就是假的,是作者在替曹操因軍敗撤退尋找理由,以彌補史書中出現的漏洞————因郭嘉去世較早,很多事情在當時的人們中已難以求證,他是一個最佳的彌縫的人選,因此,《三國志》中的郭嘉有很多非常神奇的判斷,其實,都不能排除是作者拿後來發生的事故意安在郭嘉身上,以解釋曹操在當時的某些決策。就拿此次郭嘉的這一建議來說,如果郭嘉當真說過這話,既然已經確定了這一方略,那麼,為什麼在不久以後袁譚向曹操求救時,曹操還猶豫再三呢?反而在荀攸和袁譚的使者辛毗的一再勸說下才北上呢?因此,曹操這次將鄴城這塊到嘴邊的肉又吐出來,最大的可能是他不得不吐出來,而並不是他和郭嘉對二袁將來的關係發展有什麼神奇的先見之明。