袁术与袁绍有隔阂,袁术向公孙港求援,公孙浪派刘备驻守高唐,单经驻平原,陶谦驻守发于,以此来逼迫袁绍。曹操和袁绍联合攻击,都打败了他们。四年春季,曹操驻军哪城。荆州牧刘表切断袁术运粮的通道,袁术率军进入陈留郡,驻守封丘县,黑山军的残部和放夫罗等辅佐他。袁术派部将刘详驻守匡亭。
曹操攻击刘详,袁术救援他,与袁术交战,把他打得大败。袁术退守封丘,就包围封丘,尚未合围,袁术向襄邑逃跑,逃到大寿,挖开渠水灌城。袁术逃到宁陵,又追到宁陵,袁术逃到九江。夏季,曹操回军定陶。这年,孙策接受袁术派遣渡过长江,几年间,就占有了江东。兴平元年春季,曹操从徐州回来。
当初,曹操的父亲曹嵩,辞退官职之后回到谯县,董卓之乱时,到琅琊避难,被陶谦杀害,所以曹操志在复仇,向东讨伐。夏季,派荀彧、程昱驻守哪城,再次征讨陶谦,攻占了五座城邑,最后占领了直到东海的地区。回来经过郯县时,陶谦的部将曹豹和刘备在郯县的东部驻守,中途截击曹操。曹操打败了他们,终于攻占了襄贲,所经过的地方大多遭到破坏、屠杀。
恰逢张邈和陈宫反叛,迎接吕布,各郡县都响应。荀彧、程昱保卫哪城,范县东阿二县牢固地防守,曹操就领兵回来。吕布来到,攻打鄄城未能攻下,驻扎在西面的濮阳,曹操说:“吕布一天就攻占一个州,却不能占据东平,切断亢父、泰山的通道,凭借险要之地中途截击我,反而驻守濮阳,我判断他不能有所作为。”于是进军攻打吕布。吕布出兵迎战,先用骑兵冲击青州兵。
青州兵逃跑,曹操的兵阵混乱,他驰马从火海中冲出,从马上摔下来,烧伤了左手掌。司马楼异搀扶着曹操上马,才带着他离开。他们未到军营就停下来,各将领没有见到曹操,都担心害怕。曹操于是自己支撑着去慰劳军队,命令军队赶紧准备进攻的器械,再次进攻吕布,跟吕布僵持了一百多天。这时发生了蝗虫灾害,百姓遭受大饥饿,吕布的粮食也吃光了,各自撤军离开。
秋季九月,曹操回到鄄城。吕布到达乘氏县,被他的同县人李进所打败,往东到山阳县驻守。这时,袁绍派人劝说曹操,想连络和好。曹操新近丢掉了兖州,军粮吃光,准备答应他。程昱劝阻曹操,曹操听从他的意见,冬季十月,曹操到了东县。二年春季,曹操袭击定陶。济阴太守灵资守卫南城,没有攻下。
恰逢吕布来到,曹操又打败了他。夏季,吕布部将薛兰、李封在巨野驻守,曹操攻击他,吕布援救薛兰,薛兰战败,吕布逃跑,终于斩了薛兰等人。吕布又从东缗和陈宫带领一万多士兵前来交战,当时曹操士兵少,便设下埋伏,出奇兵袭击,大败吕布。吕布夜里逃跑,曹操再次进攻,攻下了定陶,分兵平定了各县。吕布向东投奔刘备,张邈跟从着吕布,派他的弟弟张超带领家属保守雍丘。秋季八月,曹操围攻雍丘。冬季十月,皇帝任命曹操为充州牧。十二月,雍丘被攻陷,张超自杀。