曹操一路奔逃,还未回到军营,众将还未见到曹操的身影,都心急如焚,惶恐不安。曹操回到军营后,尽管身负伤痛,却强撑着身体,亲自慰劳将士,鼓舞士气。他命令军中士卒迅速制造攻城器械,准备再次向吕布发起进攻。此后,曹操与吕布在濮阳对峙了一百多天。然而,祸不单行,这期间,蝗虫肆虐,大片农田遭到破坏,百姓陷入严重的饥荒之中。吕布的军队也面临着粮食短缺的困境,双方都难以支撑,最终各自引兵退去。
这年秋九月,曹操率军回到鄄城。吕布则退到乘氏,却在这里遭遇乘氏县人李进的袭击,被打得大败,无奈之下只能向东逃窜,屯驻在山阳。此时,袁绍见曹操处境艰难,便派人前来劝说曹操,希望能与曹操联合。曹操刚刚失去兖州,军中粮食也已告罄,在困境之下,他一度想要答应袁绍的提议。关键时刻,程昱极力劝阻曹操,曹操冷静思考后,听从了程昱的建议,拒绝了袁绍。冬十月,曹操率军来到东阿,暂时在此休整,积蓄力量,等待东山再起的机会。
兴平元年,这一年的兖州大地被灾难的阴影所笼罩,粮食价格飞涨,一斛谷竟卖到五十多万钱,百姓生活陷入绝境,甚至出现了人吃人的惨状。在如此艰难的情况下,曹操不得不裁撤掉新招募的吏兵,以缓解军中粮食短缺的压力。
与此同时,徐州牧陶谦因病去世,刘备顺势接管了徐州。
兴平二年春天,曹操决定对定陶发起突袭。当时,济阴太守吴资据守南城,曹操久攻不下。就在此时,吕布率军赶来救援,曹操果断迎战,再次击败了吕布。
夏天,吕布的部将薛兰、李封屯驻在钜野。曹操得知消息后,立即挥师进攻。吕布急忙出兵营救薛兰,然而在曹操的猛烈攻击下,薛兰战败,吕布见势不妙,仓皇逃走。曹操乘胜追击,斩杀了薛兰等人。吕布不甘心失败,他又从东缗与陈宫率领一万多人前来与曹操决战。当时曹操的兵力相对较少,但他足智多谋,提前设下埋伏,然后派出奇兵突袭。这一战,曹操大获全胜。据《魏书》记载,当时曹操的士兵大多外出收割麦子,留守的士兵不足千人,军营的防御也较为薄弱。曹操当机立断,让妇女们登上城墙守卫,自己则率领全部兵力出城迎敌。在军营西边有一道大堤,大堤南边树木繁茂,幽深静谧。吕布率军来到此处,心中起疑,担心有伏兵,于是对部下说:“曹操诡计多端,我们千万不要中了他的埋伏。”说罢,便率军在南边十多里处屯驻下来。第二天,吕布再次率军前来。曹操将士兵隐藏在大堤内,只派出一半兵力在堤外。吕布见状,继续进军。曹操先派轻装士兵上前挑战,双方交战不久,隐藏在大堤内的伏兵迅速杀出,步骑兵协同作战,向吕布的军队发起猛烈攻击。这一战,曹操不仅大破吕布的军队,还缴获了他们的战鼓和战车,一直追到吕布的军营才凯旋而归。
吕布在夜间趁乱逃走,曹操抓住战机,再次发起进攻,成功攻克定陶。随后,曹操分兵平定了定陶周边的各个县。吕布走投无路,只好向东投奔刘备。张邈追随吕布而去,他让弟弟张超带着家属退保雍丘。
这年秋八月,曹操率军包围了雍丘。冬十月,汉献帝正式任命曹操为兖州牧。到了十二月,雍丘城在曹操的长期围困下终于崩溃,张超见大势已去,自杀身亡。曹操下令将张邈的三族全部诛杀。张邈前往袁术处求救,却被袁术的部下所杀。至此,兖州之乱被彻底平定,曹操随后挥师东进,攻略陈地。
也是在这一年,长安城内陷入混乱,汉献帝被迫东迁。在东迁的途中,汉献帝的队伍在曹阳遭遇惨败,无奈之下只能渡河,前往安邑暂避。