兴平二年,曹操在经过一段时间的休整后,重整旗鼓,准备与吕布再次展开角逐,进攻濮阳,收复兖州失地。
对此,吕布也早有准备。濮阳前面是鄄城,后面是袁绍的势力范围,为了避免腹背受敌,吕布将军队移到定陶附近的山阳驻扎,试图向兖州东南方向发展。
兴平二年春天,曹操决定先攻打济阴的郡治定陶,扰乱吕布的判断,然后再伺机攻击吕布。
面对气势汹汹的曹军,驻守定陶南城的济阴太守吴资退守南城,布下严密防线,曹军未能攻下。吕布得知消息后急忙率兵增援,曹操趁吕布安营未稳,立刻派遣骑兵突袭,吕布战败后退回山阳。
在攻打定陶的同时,曹操派遣曹仁率领部队攻打山阳附近的另一座城池——句阳城。当时吕布的注意力都集中在定陶,因此句阳城很快就被曹军攻陷。吕布见形势不利,开始向东北方向撤退。
兴平二年夏天,吕布决定反击,他命令属下薛兰、李封屯兵巨野,向曹操挑战。吕布和陈宫分析认为,曹操比较喜欢打和敌军主力互为犄角的机动队伍,因此,他们便用薛兰等人做诱饵吸引曹操,准备等双方展开激战的时候,再由吕布率领队伍乘机包抄过去。
然而,曹操这次却改变了战术。他留下部分军队继续攻打定陶,又命令曹仁率领军队攻打巨野,自己则亲率主力埋伏在途中。当吕布率领军队向巨野逼近时,曹操出其不意,发动袭击。很快,吕布的军队开始溃散逃走。
曹操率领军队与曹仁会合后,集中全部力量攻打巨野,最后,巨野被攻陷,薛兰等人全军覆没。为了预防吕布反扑,曹操命令一部分军队筹集粮食,自己则带领其余士兵积极修建工事,做好防御准备。
这时,传来陶谦已经病死,并把徐州让给刘备的消息。曹操想利用这一时机,进兵徐州,借以解决军粮问题,然后再回来消灭吕布,收复失地。当曹操向手下人征求意见时,荀彧发表了自己的看法:
“从前汉高祖与项羽争夺天下,先是确保关中;光武帝经略河北,先据守河内,都是先扎根固本,然后再进取天下,这样进可以战胜敌人,退足以守住根本。所以,虽然他们也有挫折和失败的时候,但最终还是成就了大业。将军本来是在兖州起兵的,在这里有很大影响,兖州在黄河、济水之间,是天下的要地,如今虽然有些残破,但总还可以据守自保,这里就是将军的关中、河内,不可以不首先平定和巩固。”
曹操认真听荀彧讲,荀彧停下来看看他,他要荀彧展开来讲,荀彧又从容地接着阐释:
“现在我们已经消灭了李封和薛兰,如果再分兵向东攻打陈宫,使他无法西顾,我们趁此时机抢收小麦,节省用度,多加积蓄,军粮问题就可以解决。然后再攻打吕布就不成问题了。打败吕布之后,我们再南结扬州的刘繇,共同讨伐袁术,把势力扩展到淮河、泗水地区。如果现在放弃吕布而去东征徐州,多留官兵,前线就要不够用;少留官兵,后方又要空虚。吕布乘虚攻伐抢掠,民心就会动摇,兖州就有丢掉的危险。如果徐州再拿不下来,将军到哪里去立足呢?”
曹操听到这里,进而问荀彧:“何以见得我们打不下徐州呢?”
荀彧严肃地论述道:
“徐州的陶谦虽然死去,但徐州不容易破亡。刘备在徐州深得人心,他们鉴于过去的失败,必定团结起来,互相配合,做充分的准备。现在东方各地的麦子已经收割完毕,他们必然采用坚壁清野的办法来对付我们。这样,我军攻城攻不下,掳掠无所获,不超过十天,我大军就会陷于困难境地。
前次讨伐徐州,将军威罚必行,杀了不少人,那里的子弟怀恨在心,一定坚守到底,至死也不会投降。就是能够攻破徐州,由于结仇太深,也不会安稳地占有它。
事情固然有失此而得彼的情况,但必须是弃小而得大,以危险挟来安定,或是乘一时之势进取而不动摇根本,才可以进行。然而我们现在去征讨徐州,在这三方面来说,都是不利的。请将军再深思熟虑,权衡一下利弊。”
曹操觉得荀彧这一番说得有理有据,既坦诚又透彻,很有道理,赞叹不已。曹操放弃了东征徐州的打算,马上命令将士出去抢割麦子。
不久后,吕布和陈宫果然率领万余精兵反扑攻城。当时,曹操的军队大部分都在外边抢割麦子,留守的将士不足一千,情势危急之下,曹操命令城中妇女登上城楼参与防守,以便集中兵力对付敌军。
吕布行军至城外大堤处,见地形奇特,密林丛生,恐怕曹操在林中设下埋伏,一时之间不敢贸然前进。他和陈宫商议,暂时在大堤十里处安营扎寨。
当天夜里,外出抢割麦子的一部分将士赶了回来。曹操立即进行军事部署,他将一部分士兵暴露在大堤之外,大部分兵力则隐藏在大堤之内,借此诱敌来攻。
第二天,吕布探听到树林中并无埋伏之后,便立刻下令士兵进攻。曹军暴露在大堤外的队伍且战且退,将吕布引诱到埋伏圈内,堤内众军一拥而上,将吕布杀得措手不及。
仓皇应战的吕布大惊失色,很快就败下阵来,士兵伤亡惨重。曹操乘胜追击,一直杀到吕布大本营。
吕布见大势已去,便连夜与陈宫带着残兵败将逃往徐州,准备投靠刘备。张邈见吕布大败,非常惊恐,立即派弟弟张超带领家属退守雍丘,自己则逃亡徐州。
此后,曹操亲率大军攻陷定陶城。同年八月,曹军攻打雍丘,张超率领残部顽强抵抗。张邈得知消息后,急忙向吕布求援,但却遭到了吕布的拒绝,张邈只好前往扬州向袁术求援。但还未行至扬州,就在途中被叛乱的军士所杀。
十月,朝廷见曹操已经基本控制了兖州的局势,便正式任命曹操为兖州牧。曹操忙向朝廷上书,表示了自己的忠诚。
曹操在给皇帝上表中这样说:
“臣过去在内掌管禁军,在外承担征伐重任,因几代蒙受皇恩,不敢顾惜生命。因此率领将士,按照天子的意旨征伐,但尚未彻底讨平叛乱,消灭敌人,就享受这样的厚待,实在惭愧。功绩没有建立,名不副实,要受到讥笑,实在是进退维谷。”
在这里,曹操表示自己要效忠皇帝,按朝廷的意愿,担负起讨平叛乱的重任。
曹操决心尽快收复兖州失地,拿下雍丘。可是张超守城,非常顽强,他身先士卒,昼夜不离城头,手下将士,也都不敢懈怠。
到了十二月,曹操围攻雍丘已达数月,张超见城内已无粮草,外无救兵,实在坚持不下去了,知道曹操是不会放过他的,于是就自杀了。
曹操拿下雍丘后,把张邈、张超的家属全部杀死。反叛曹操的主要人物死的死、逃的逃的同时,曹操分兵平定原来响应张邈叛变的一些郡县,到年底这些郡县也都先后向曹操投降了。
至此,曹操全部收复了兖州失地,而且名正言顺地成为兖州的主宰者,他在这里的统治稳定下来。此后,他得以腾出手来,集中精力建设和巩固这块根据地,进而采取一系列政策措施,实现其剪灭群雄,统一北方的宏图大业。