袁绍起初得知曹操去攻打淳于琼时,还自信满满地对长子袁谭说:“就算他去攻打淳于琼等人,我只要攻下他的大营,他就无处可归了!”于是,袁绍派张合、高览前去攻打曹洪。然而,张合、高览听闻淳于琼战败的消息后,深知大势已去,便阵前倒戈,向曹操投降。袁绍的军队见此情形,顿时军心大乱,全线溃败。袁绍和袁谭惊慌失措,弃军而逃,一路渡过黄河。曹操率军追击,但终究没能追上。不过,曹军缴获了袁绍大量的辎重、图书、珍宝,还俘虏了众多袁军士兵。
据《献帝起居注》记载,曹操向朝廷上奏说:“大将军邺侯袁绍,之前与冀州牧韩馥谋划拥立已故大司马刘虞,还刻制金玺,派原任长毕瑜前往刘虞处,宣扬所谓的天命符录。袁绍还曾给我写信说:‘可以把都城定在鄄城,到时候应当有所拥立。’他擅自铸造金银印玺,各地的孝廉、计吏都前往投奔他。他的堂弟济阴太守袁叙在给袁绍的信中说:‘如今天下大乱,天意显然在我们袁家,神灵已经有了征兆,应当落在您兄长身上。南方的臣下想要拥立您兄长即位,您兄长说,论年龄,北方的兄长更大,论地位,北方的兄长更重要。本打算送去玉玺,却被曹操阻断了道路。’袁绍宗族世代蒙受国家的重恩,却做出如此凶逆无道的事。我于是整军备战,与他在官渡交战。凭借着圣朝的威严,我军斩杀了袁绍大将淳于琼等八人,大败袁军。袁绍和他的儿子袁谭只能轻装逃走。此次战役,我军共斩首七万多级,缴获的辎重财物更是不计其数。”
曹操在缴获的袁绍信件中,发现了许多许都和自己军中的人暗中与袁绍勾结的信件。曹操并未追究这些人,而是将信件全部烧毁。《魏氏春秋》记载,曹操说:“当袁绍强盛之时,我自己都难以自保,更何况其他人呢!”经此一役,冀州的许多郡县纷纷举城投降曹操。
想当初,汉桓帝在位的时候,在楚、宋两国的分野之处,有一颗黄星闪耀出现。辽东有个叫殷馗(“馗”,就是古字“逵”,在《三苍》中可查)的人,此人精通天文之术。他曾预言,此后五十年,会有真命天子在梁、沛之间崛起,其锋芒无人能挡。时光悠悠流转,到如今刚好过去了五十年,曹操在官渡大破袁绍,一时间,天下再没有能与他抗衡的人,仿佛真应了当年殷馗的预言。
建安六年夏四月,曹操在黄河之畔整军扬威,向袁绍驻扎在仓亭的军队发起进攻。曹军士气高昂,攻势凌厉,一举击破袁军。袁绍吃了败仗,狼狈退回,却并未就此一蹶不振。他重新收拢那些离散的士兵,又去攻打平定那些背叛他的郡县,试图重振旗鼓。
同年九月,曹操班师回朝,回到许都。在袁绍还未被打败的时候,他曾派遣刘备去攻略汝南。汝南当地的贼寇共都等人纷纷响应刘备,一时间声势浩大。曹操派蔡扬前去攻打共都,然而战事不顺,蔡扬反被共都击败。曹操得知后,决定亲自率军南征刘备。刘备听说曹操亲自前来,心中大惊失色,不敢应战,赶忙逃往刘表处寻求庇护。共都等人见刘备已逃,顿时树倒猢狲散,各自散去。
建安七年春正月,曹操率领军队来到谯县。看着这片曾经熟悉的故土,如今却因战乱变得满目疮痍,曹操心中感慨万千,他下令道:“我兴起义兵,本意是为天下百姓铲除暴乱。可如今,故乡的百姓大多在战乱中死去,我在城中整日行走,却几乎遇不到一个相识之人,心中满是凄凉悲怆。自起义兵以来,那些为国家奋战而断绝后嗣的将士们,我要寻找他们的亲戚,让这些亲戚作为他们的后嗣,赐予他们土地和耕田的牛,还要为他们安排学师进行教导。为那些还在世的将士建立宗庙,让他们能够祭祀自己的先人。若是逝者的灵魂有知,我百年之后也就没有什么遗憾了!”之后,曹操率军来到浚仪,组织人手治理睢阳渠,以保障当地的水利和民生。他还特意派遣使者,用太牢之礼祭祀桥玄。(《褒赏令》中记载了曹操的祭祀文章:“已故的太尉桥公,品德高尚,广施仁爱,胸怀宽广,能包容万物。国家铭记他的英明训诫,士人思念他的良策。如今,他的灵魂已归于幽冥,身体也已化为尘土,令人追思却又遥不可及!我在年幼之时,有幸得以登门拜访,得以与他相识。以我顽劣粗鄙的资质,却能得到桥公这样的大君子接纳。我能增添荣耀、开阔眼界,全都是因为他的鼓励和帮助。就如同孔子称赞自己不如颜渊,李生深切赞叹贾复一样,我对桥公满怀感激。士为知己者死,这份恩情我永远不会忘怀。桥公还曾与我从容交谈,并立下约定:‘我去世之后,你若路过我的墓地,要是不用斗酒只鸡来祭拜我,等你的车过去三步之后,我要是让你肚子疼可别见怪!’虽然这只是当时玩笑般的话语,但若不是关系至亲至厚,又怎会说出这样的话呢?我并非害怕桥公的灵魂会发怒让我生病,只是怀念往昔的情谊,每每想起,心中就满是凄怆。如今我奉命东征,军队驻扎在故乡附近,向北遥望桥公的墓地,心中满是思念。我备下这微薄的祭品,希望桥公能够享用!”)祭祀完毕,曹操又率军进驻官渡,时刻准备应对新的战事。
袁绍自从在官渡战败之后,心情抑郁,积郁成疾,常常吐血。到了建安七年夏五月,他终究还是没能挺过去,一命呜呼。袁绍死后,他的小儿子袁尚接替了他的位置,大儿子袁谭则自封车骑将军,屯兵在黎阳。
这年秋九月,曹操决定征讨袁谭和袁尚。双方一交战,便陷入了激烈的战斗。袁谭和袁尚的军队接连败退,但他们凭借着坚固的城防,拼死固守,曹操一时间也难以攻克。
建安八年春三月,曹操改变策略,开始攻打黎阳的外城。袁谭和袁尚见曹操来势汹汹,终于按捺不住,出城迎战。曹操指挥若定,曹军士气高昂,奋勇杀敌,一举大破袁军。袁谭和袁尚见势不妙,趁着夜色仓皇逃窜。夏四月,曹操乘胜进军,直逼邺城。然而,五月时曹操又率军回到许都,只留下贾信屯守黎阳。
五月己酉日,曹操颁布了一道命令:“《司马法》中说‘将军死绥’(据《魏书》解释,‘绥’就是退却的意思,要求将士们前进一尺也不能后退一寸),所以赵括的母亲才会请求不因赵括战败而受牵连获罪。由此可见,在古代,将领在战场上打了败仗,他的家人在国内也会受到惩罚。但如今我军出征,只奖赏有功之人,却不惩罚有罪之人,这不符合国家的典章制度。现在我命令,各位将领出征时,若是打了败仗,必须承担罪责;作战失利的,要免去官职和爵位。”(《魏书》中还记载了庚申日颁布的另一道命令:“有人认为,军中的官吏虽然有功劳和才能,但德行不足以胜任郡国的选拔,就像古人说的‘可以和他一起遵循正道,却不可以和他一起权衡变通’。管仲说过:‘让贤能的人凭借才能获得俸禄,君主就会受到尊崇;让战士凭借战功获得赏赐,士兵就会不惧死亡。在国家中实行这两条,天下就能得到治理。’从未听说过无能的人和不作战的人,都能接受俸禄和赏赐,却还能立功兴国的。所以英明的君主不会任用没有功劳的臣子,不会奖赏不作战的士兵;国家太平的时候崇尚德行,有战事的时候奖赏功劳。那些议论的人,就像是从竹管里看老虎,见识太浅薄了!” )
建安八年秋七月,曹操又下达了一道命令:“自天下大乱以来,已经过去了十五年。年轻的一代从未见过仁义礼让的风气,对此我深感痛心。现在我命令各郡国要重视文化教育,人口满五百户的县要设置学校,选拔当地的优秀人才进行教育培养。希望先代圣贤的思想和学说不会荒废,从而对天下有所裨益。”
八月,曹操决定征讨刘表,他率领军队进驻西平。就在曹操离开邺城向南进军的时候,袁谭和袁尚为了争夺冀州,展开了激烈的争斗。袁谭不敌袁尚,被打得节节败退,最后只能逃往平原,据城自保。袁尚乘胜追击,对平原城发起了猛烈的进攻。袁谭走投无路,只好派辛毗向曹操乞降求救。曹操的将领们对此都心存疑虑,不知是否该答应袁谭的请求。关键时刻,荀攸站出来劝说曹操答应袁谭,(据《魏书》记载,曹操说:“我攻打吕布的时候,刘表没有趁机侵扰;官渡之战时,他也没有救援袁绍,他就是个只求自保的人,我们可以以后再对付他。袁谭和袁尚狡猾多端,我们应该趁着他们内乱的机会出击。就算袁谭心怀狡诈,不会一直乖乖听话,但只要我们能打败袁尚,占领他的部分土地,对我们也是大有好处的。”于是曹操便答应了袁谭的请求。)曹操听了荀攸的分析,觉得很有道理,便率领军队返回。
这年冬十月,曹操的军队抵达黎阳。为了进一步巩固与袁谭的联盟关系,曹操还为儿子曹整和袁谭的女儿定下了婚约。(臣松之考证:从袁绍去世到此时,仅仅过了五个月多一点。袁谭虽然过继给了他的伯父,但也不应该在袁绍去世还不到三年的时间里,就举行这样的喜事,这实在是违背了礼制。曹操或许是出于权宜之计,才与袁谭约定此事;如今说结婚,未必就是在这一年举行婚礼。)
袁尚听说曹操的军队向北返回,担心曹操会趁机攻打邺城,于是便放弃了对平原的围攻,撤回邺城。此时,东平的吕旷、吕翔背叛了袁尚,他们率领部众屯驻在阳平,随后向曹操投降。曹操为了嘉奖他们,封二人为列侯。(《魏书》记载,袁谭的围困解除后,他私下将将军的印绶送给吕旷。吕旷接受印绶后,将此事告知曹操。曹操说:“我就知道袁谭会耍些小手段。他是想让我去攻打袁尚,这样他就能趁机抢夺百姓、聚集兵力。等袁尚被打败,他就可以壮大自己,再来趁我疲惫的时候攻打我。但他没想到,等袁尚被打败,我的势力更强大了,他又能趁我什么‘疲惫’呢?” )