曹操从徐州赶回,听说吕布屯于濮阳,遂进军围攻濮阳。
二军相持百余日,蝗灾大起,双方停战,曹操军还鄄城。
曹操失去了兖州,军粮已尽,袁绍派人来劝说想让曹操投靠他,让曹操举家迁到邺县当人质。
曹操本打算答应袁绍,多亏程昱劝阻曹操才打消这个念头。
兴平二年,曹操整军再战吕布,三败之,破定陶、廪丘等地,平定兖州。
吕布逃往徐州投靠刘备。七月,因李傕、郭汜的火拼,汉献帝从长安东归,下诏让各路诸侯勤王。
建安元年八月,曹操迎汉献帝。
辛亥时节汉献帝封曹操为司隶校尉,录尚书事。
庚申时迁都许县,十一月丙戌,汉献帝封曹操为司空,行车骑将军事,百官总己以听。
建安二年正月,曹操讨伐张绣,军队驻扎在淯水,张绣举众投降,旋即复叛,长子曹昂、侄子曹安民、猛将典韦战死。
此后曹操又两度攻击张绣,都没有彻底击破。
九月,曹操东征袁术,袁术弃军而逃至淮河,枭袁术留守四将。
建安三年四月,曹操遣谒者裴茂率中郎将段煨讨李傕夷三族。
九月曹操东征徐州,进攻久与他为敌的吕布。
在曹军攻势之下,吕布军上下离心,十二月,吕布部将魏续、宋宪等生擒陈宫归降曹操。
吕布见大势已去,下城投降,却不料曹操将自己和陈宫、高顺等人处死。
收降吕布部将张辽以及泰山豪杰臧霸、孙观等人后,曹操初步控制了徐州。
建安四年,曹操派史涣、曹仁击破张杨旧部眭固,取得河内郡,把势力范围扩张到黄河以北。
消灭眭固后,为了应对之后与袁绍的战争,曹操预作布置,命在青州有潜在影响的臧霸等人攻入青州,占领齐、北海等地。
巩固右翼的同时,又命大将于禁屯军黄河南岸监视袁军。
不久之后张绣听从谋士贾诩之计,投降曹操,曹操大喜,拜张绣为扬武将军,解除了后顾之忧。
建安四年十二月,曹操自率军屯于官渡准备迎击袁绍。
刘备在陶谦死后,曾一度出任徐州牧,后徐州被吕布攻占,刘备投奔曹操。
曹操认为刘备是个英雄,先后表他为豫州牧左将军。
曹操攻占徐州不久,淮南袁术准备逃往青州往依袁绍,曹操派刘备去截击,袁术北上不得,呕血而死。
建安五年正月,董承等人谋诛曹操事泄被曹操杀掉,刘备于是袭杀徐州刺史车胄,占据徐州。
刘备以徐州叛,因此曹操决定东征刘备。
诸将皆说与公争天下者袁绍也,今绍方来而弃之东,绍乘人后,若何?
曹操却言,刘备,人杰也,今不击,必有后患。袁绍虽有大志,而见事迟,必不动也。
遂进军以迅雷不及掩耳之势击破刘备,刘备见此只好立马逃奔袁绍。