此时,曹『操』失去了兖州(治今山东郓城西北),军粮已尽,袁绍派人来劝说想让曹『操』投靠他,让曹『操』举家迁到邺县当人质。曹『操』本打算答应袁绍,多亏程昱劝阻,曹『操』才打消这个念头。
兴平二年(195年),曹『操』整军再战吕布,三败之,破定陶(今山东定陶)、廪丘(今山东郓城西北)等,平定兖州。吕布逃往徐州投靠刘备。七月,因李傕、郭汜的火拼,汉献帝从长安东归,下诏让各路诸侯勤王。
建安元年(196年)八月,曹『操』迎汉献帝。辛亥,汉献帝封曹『操』为司隶校尉,录尚书事。庚申,迁都许昌。十一月丙戌,汉献帝封曹『操』为司空,行车骑将军事,百官总己以听。
建安二年(197年)正月,曹『操』讨伐张绣,军队驻扎在淯水,张绣举众投降,旋即复叛,长子曹昂、侄子曹安民、猛将典韦战死。此后,曹『操』又两度攻击张绣,都没有彻底击破。九月,曹『操』东征袁术,袁术弃军而逃至淮河,枭袁术留守四将。
建安三年(198年)四月,曹『操』遣谒者裴茂率中郎将段煨讨李傕,夷三族。九月,曹『操』东征徐州,进攻久与他为敌的吕布。在曹军攻势之下,吕布军上下离心,十二月,吕布部将魏续、宋宪等生擒陈宫归降曹『操』。吕布见大势已去,下城投降。曹『操』将吕布、陈宫、高顺等人处死,收降吕布部将张辽以及泰山豪杰臧霸、孙观等人,初步控制了徐州。
建安四年(199年),曹『操』派史涣、曹仁击破张杨旧部眭固,取得河内郡,把势力范围扩张到黄河以北。【21】
官渡之战
消灭睦固后,为了应对之后与袁绍的战争,曹『操』预作布置,命在青州有潜在影响的臧霸等人攻入青州,占领齐(治今山东临淄)、北海(治今山东寿光东南)等地,巩固右翼;又命大将于禁屯军黄河南岸,监视袁军。不久,张绣听从谋士贾诩之计,投降曹『操』,曹『操』大喜,拜张绣为扬武将军,解除了后顾之忧。
建安四年(199年)十二月,曹『操』自率军屯于官渡(今中牟北),准备迎击袁绍。
刘备在陶谦死后,曾一度出任徐州牧,后徐州被吕布攻占,刘备投奔曹『操』。曹『操』认为刘备是个英雄,先后表他为豫州牧、左将军。曹『操』攻占徐州不久,淮南袁术准备逃往青州往依袁绍,曹『操』派刘备去截击,袁术北上不得,呕血而死。