此时,曹『操』失去了兖州(治今山东郓城西北),军粮已尽,袁绍派人来劝说想让曹『操』投靠他,让曹『操』举家迁到邺县当人质。曹『操』本打算答应袁绍,多亏程昱劝阻,曹『操』才打消这个念头。
兴平二年(195年),曹『操』整军再战吕布,三败之,破定陶(今山东定陶)、廪丘(今山东郓城西北)等,平定兖州。吕布逃往徐州投靠刘备。七月,因李傕、郭汜的火拼,汉献帝从长安东归,下诏让各路诸侯勤王。
建安元年(196年)八月,曹『操』迎汉献帝。辛亥,汉献帝封曹『操』为司隶校尉,录尚书事。庚申,迁都许昌。十一月丙戌,汉献帝封曹『操』为司空,行车骑将军事,百官总己以听。
建安二年(197年)正月,曹『操』讨伐张绣,军队驻扎在淯水,张绣举众投降,旋即复叛,长子曹昂、侄子曹安民、猛将典韦战死。此后,曹『操』又两度攻击张绣,都没有彻底击破。九月,曹『操』东征袁术,袁术弃军而逃至淮河,枭袁术留守四将。
建安三年(198年)四月,曹『操』遣谒者裴茂率中郎将段煨讨李傕,夷三族。九月,曹『操』东征徐州,进攻久与他为敌的吕布。在曹军攻势之下,吕布军上下离心,十二月,吕布部将魏续、宋宪等生擒陈宫归降曹『操』。吕布见大势已去,下城投降。曹『操』将吕布、陈宫、高顺等人处死,收降吕布部将张辽以及泰山豪杰臧霸、孙观等人,初步控制了徐州。
建安四年(199年),曹『操』派史涣、曹仁击破张杨旧部眭固,取得河内郡,把势力范围扩张到黄河以北。【21】
官渡之战
消灭睦固后,为了应对之后与袁绍的战争,曹『操』预作布置,命在青州有潜在影响的臧霸等人攻入青州,占领齐(治今山东临淄)、北海(治今山东寿光东南)等地,巩固右翼;又命大将于禁屯军黄河南岸,监视袁军。不久,张绣听从谋士贾诩之计,投降曹『操』,曹『操』大喜,拜张绣为扬武将军,解除了后顾之忧。
建安四年(199年)十二月,曹『操』自率军屯于官渡(今中牟北),准备迎击袁绍。
刘备在陶谦死后,曾一度出任徐州牧,后徐州被吕布攻占,刘备投奔曹『操』。曹『操』认为刘备是个英雄,先后表他为豫州牧、左将军。曹『操』攻占徐州不久,淮南袁术准备逃往青州往依袁绍,曹『操』派刘备去截击,袁术北上不得,呕血而死。
建安五年(200年)正月,董承等人谋诛曹『操』事泄,被曹『操』杀掉。刘备遂袭杀徐州刺史车胄,占据徐州。
曹『操』为了免于将来同袁绍作战时前后受敌,决定先消灭在徐州立足未稳的刘备。当时诸将皆怕袁绍乘机来攻许都,曹『操』对此胸有成竹,说:“刘备,人杰也,今不击,必有后患。袁绍虽有大志,而见事迟,必不动也。”遂进军,以迅雷不及掩耳之势击破刘备,刘备逃奔袁绍。
袁绍是当时北方最强大的一股势力,也是曹『操』统一北方最强大的敌人。袁氏一门,自袁绍曾祖袁安以下,“四世居三公位”,“门生故吏遍于天下”,势力本就很大,后袁绍取得冀、并、幽、青四州之地,实力大增,有军队数十万人。袁绍以其长子袁谭、次子袁熙、外甥高干分守青、幽、并三州,后方稳固,兵精粮足,根本不把曹『操』放在眼里。他挑选精兵十万、战马万匹,志在一举消灭曹『操』。
建安五年(200年),袁绍命大将颜良等人进兵白马(今滑县),自率大军进屯黎阳(今浚县东),向曹『操』发动进攻。曹『操』的实力比袁绍弱得多【23】,曹『操』所占的大河以南地区,地盘既小,又是四战之地,残破不堪,还没有完全恢复,物资比不上袁绍那样丰富。曹『操』的兵力也远不及袁绍,其总兵力大概不过几万人,投入前线的兵力据《武帝纪》说“兵不满万,伤者十二三”。裴松之认为此数不准确,曹『操』的兵力不会如此之少,但曹『操』兵力远逊于袁绍却是毫无疑问的。【24】
袁绍大军来攻,许都震动。曹『操』安慰众将说:“吾知绍之为人,志大而智小,『色』厉而胆薄,忌克而少威,兵多而分画不明,将骄而众令不一,土地虽广,粮食虽丰,适足以为我奉也。”
二月,袁绍大将颜良等人围攻白马,拉开了大战的序幕。四月,曹『操』亲自率兵北上解白马之围,他采纳谋士荀攸之计,先进军延津(今延津北一带),做出要渡河袭击袁军的态势,吸引袁军分兵西向,然后突然转向迅速赶往白马。曹『操』军突然杀到,袁军措手不及,颜良被关羽斩首【25】,袁军大败,白马之围遂解。曹『操』救出白马军民,沿黄河西撤。袁绍闻知,立即命文丑、刘备渡河追赶曹『操』。曹『操』见追兵渐近,命军士解鞍放马,并置辎重于道。袁军追兵大至,争抢辎重,阵形混『乱』。曹『操』率领仅有的骑兵突然杀出,大破追兵,阵斩文丑。袁军大震。曹『操』初战得胜,主动撤军,继续扼守官渡。
八月,袁绍大军连营而进,东西数十里,依沙堆为屯,进『逼』官渡。曹『操』分兵坚守营垒,伺机而动。袁军向曹营发动猛攻,先是作高橹、起土山,由上向曹营中『射』箭,接着又挖地道,欲从地下袭击曹营,皆被曹『操』以设投石机、挖掘沟壑之法破解。两军一