曹操借着袁绍的败退,整顿军队,一路追赶。袁绍只带着八百多人,穿着简单的衣服逃到了黎阳北岸,大将蒋义渠出来迎接他。袁绍向蒋义渠诉说了之前的战况。蒋义渠于是召回了散去的士兵,士兵们听说袁绍还在,纷纷回来聚集,军队士气重新振作起来,他们计划返回冀州。
在行军途中,袁绍在帐篷里听到远处有哭声,于是私下去听,原来是败军士兵们在哭诉,诉说着兄弟失散,亲人离世的痛苦,他们各自捶胸顿足地大哭,都说:“如果我们听了田丰的话,怎么会遭受这样的灾难呢!”袁绍听后非常后悔:“我没有听田丰的话,导致军队败退,将领阵亡。现在回去,我有什么脸面见他呢?”
第二天,袁绍正骑马行进时,逢纪带着军队来迎接他。袁绍对逢纪说:“我没有听田丰的话,才落得如此下场。我现在回去,真的羞愧于见他。”逢纪却趁机陷害田丰说:“田丰在监狱里听说您战败了,他拍手大笑,说:‘果然不出我所料!’”袁绍听后大怒:“这个书生怎么敢笑我!我一定要杀了他!”于是他派使者带着宝剑去冀州的监狱里杀了田丰。
而田丰在监狱里,有一天狱吏来告诉他:“有个好消息要告诉您,袁将军大败而回,您一定会被重视的。”田丰却笑着说:“我现在就要死了。”狱吏问他:“别人都说这是个好消息,您为什么说死呢?”田丰说:“袁将军外表宽容,内心却忌恨人,不会念及忠诚。如果他胜利了高兴,还可能赦免我,现在他战败了感到羞愧,我是活不成了。”狱吏不相信他的话。不久使者带着剑来了,传达袁绍的命令要取田丰的性命,狱吏才大吃一惊。田丰说:“我早就知道我必定会死的。”狱吏们都流下了眼泪。田丰说:“大丈夫生于天地间,不能认清自己的主公而侍奉他,这是没有智慧的!今天我接受死亡,有什么值得可惜的呢!”于是他在监狱中自杀了。后来有人写诗悼念他:“昨朝沮授军中失,今日田丰狱内亡。河北栋梁皆折断,本初焉不丧家邦!”田丰死后,听到的人都为他叹息惋惜。
袁绍回到冀州后心情烦躁意乱不再处理政事。他的妻子刘氏劝他立继承人。袁绍有三个儿子:长子袁谭、次子袁熙和三子袁尚。袁谭和袁熙分别出守青州和幽州而袁尚是袁绍和刘氏所生的儿子因为长得英俊袁绍特别疼爱他留在身边。自从官渡战败后刘氏劝袁绍立袁尚为继承人于是袁绍与审配、逢纪、辛评、郭图四人商议。原来审配和逢纪支持袁尚而辛评和郭图则支持袁谭他们各为其主。袁绍对他们说:“现在外患未平内事也需早日决定。我打算立继承人。长子谭性格刚烈好杀人次子熙为人懦弱难成大事;三子尚有英雄的气质尊敬贤人礼待士人我想立他为继承人。你们的意见怎么样?”郭图说:“三子中谭为长现在又驻守在外如果主公废长立幼这将会引起内乱。现在军队士气低落敌兵压境怎么可以再让父子兄弟自相争斗呢?主公应该先考虑如何对抗敌人立嗣的事情以后再说吧。”袁绍犹豫不决。
这时有消息传来袁熙带兵六万从幽州来袁谭带兵五万从青州来外甥高干也带兵五万从并州来他们都来到冀州增援袁绍。袁绍大喜再次整备军队来与曹操交战。此时曹操带领得胜之师陈列在黄河边上有当地的老百姓送来了食物和酒水欢迎他们。曹操见到几位须发尽白的老人于是邀请他们进入帐篷赐坐问他们年纪多大老人回答说:“我们都快一百岁了。”曹操说:“我的军队打扰了你们的家乡我感到非常不安。”老人们说:“桓帝时期有黄星出现在楚、宋的分野上辽东人殷馗精通天文他晚上住在这里对我们说:‘黄星出现在天象中正好照在这个地方。五十年后当有真人从梁、沛之间崛起。’现在按照时间计算整整五十年了。袁绍对老百姓征收重税老百姓都怨恨他。而丞相您兴起仁义之师拯救百姓讨伐罪人官渡一战打败了袁绍的百万大军这正应验了当年殷馗的预言百姓们盼望太平的日子终于要到来了。”曹操笑着说:“我怎么敢当老人家所说的呢?”于是他拿出酒食和绢帛赏赐给这些老人并让他们回去了。他号令全军:“如果有人敢擅自下乡杀害老百姓的鸡狗的将以杀人罪论处!”全军士兵都震惊而顺从他曹操心中也非常高兴。
有人报告说袁绍聚集了四个州的兵力,总计二三十万人,已经前进到仓亭并扎下了营寨。曹操也率领军队前进,并在适当的位置扎下了营寨。第二天,两军对峙,各自布下了战阵。曹操带领众将出战,袁绍也带着他的三个儿子、一个外甥以及文武官员和将领来到阵前。
曹操对袁绍说:“本初(袁绍的字),你的计策已经用尽,力量也已经耗尽,为什么还不考虑投降呢?等到刀架在脖子上,后悔就来不及了!”袁绍大怒,回头对众将说:“谁敢出马迎战?”袁尚想在父亲面前显示自己的勇猛,于是舞动双刀,飞马冲出战阵,来回奔驰。
曹操指着袁尚问众将:“这是何人?”有认识的人回答说:“这是袁绍的第三个儿子袁尚。”话还没说完,一员大将已经挺枪冲出。曹操一看,原来是徐晃的部将史涣。两人交战不到三个回合,袁尚就拨马斜刺里逃走。史涣紧追不舍,袁尚回身一箭射中了史涣的左眼,史涣坠落马下而死。
袁绍看到儿子得胜,挥鞭一指,大队人马蜂拥而上,双方混战在一起。经过一场大战后,双方各自鸣金收兵回营。曹操与众将商议打败袁绍的计策。程昱献上“十面埋伏”的计策,建议曹操退军到河上设下十队伏兵引诱袁绍来追赶到河上,“我军无退路必将死战就可以战胜袁绍了。”曹操采纳了他的建议。
于是左右各分五队:左边一队是夏侯惇二队张辽三队李典四队乐进五队夏侯渊;右边一队是曹洪二队张合三队徐晃四队于禁五队高览。中军由许褚担任先锋。第二天十队伏兵先行埋伏在左右两边。到了半夜曹操命令许褚引兵前进假装要劫营的样子。袁绍的五寨人马都被惊动了一齐起来迎战许褚率军回撤逃跑。袁绍引军追赶喊声不断一直追到天亮赶到了河上。
曹军已经无路可退曹操大声呼喊:“前无去路诸军何不死战?”众军回身奋力向前冲杀。许褚飞马当先力斩十几名将领袁军大乱。袁绍急忙退军回撤背后曹军紧追不舍。正在行进间一声鼓响左边夏侯渊右边高览两军冲出截击。袁绍聚集三个儿子和一个外甥死命冲杀出一条血路逃走。
他们逃了不到十里路左边乐进右边于禁又杀出来杀得袁军人仰马翻尸横遍野血流成河。再逃不到数里路左边李典右边徐晃两军又截杀一阵。袁绍和他的儿子们胆丧心惊逃回旧寨。他们命令全军造饭刚要吃左边张辽右边张合又来冲寨。袁绍慌忙上马前奔仓亭但人马困乏想停下来歇息后面曹操大军又赶来袁绍舍命而逃。
正在逃跑之间右边曹洪左边夏侯惇挡住去路。袁绍大呼:“若不决死战必为所擒矣!”他奋力突围终于逃脱了重围。但袁熙和高干都被箭射伤军马也几乎全部死亡。袁绍抱着三个儿子痛哭一场不觉昏倒在地。众人急忙抢救但袁绍口吐鲜血不止他叹息道:“我自历战数十场没想到今天会如此狼狈!这是天意要亡我啊!你们各自回本州去誓与曹贼决一雌雄!”
于是袁绍派辛评、郭图火速跟随袁谭前往青州整顿以防曹操侵犯;又命令袁熙回幽州高干回并州各自去收拾残兵以备调用。袁绍带着袁尚等人回到冀州养病让袁尚与审配、逢纪暂时掌管军事大权。
曹操在仓亭大胜之后,重赏了他的军队。他派人去探察冀州的虚实,细作回报说袁绍卧病在床,袁尚和审配紧守城池,而袁谭、袁熙、高干都已回到各自的州。众人都劝曹操趁机急攻冀州,但曹操说:“冀州的粮食储备丰富,审配又有机智谋略,我们不可轻率进攻。现在田里的庄稼还没收,我不想废掉百姓的生计,姑且等到秋收后再取冀州也不迟。”
正在商议间,忽然荀彧来信报告说刘备在汝南得到了刘辟、龚都的数万人马。他听说曹操出征河北,就派刘辟守汝南,自己亲自带兵乘虚来攻打许昌。曹操大惊,留下曹洪在河上屯兵,虚张声势,自己则率领大军前往汝南迎战刘备。