建安六年(公元201年)四月,黄河两岸旌旗猎猎,甲仗鲜明。曹操为彻底震慑河北、巩固官渡之战后取得的战略优势,亲率大军陈兵黄河沿岸,扬威耀武,以泰山压卵之势进击袁绍驻守仓亭的部队。袁绍虽在官渡一役中精锐尽丧、大败而归,却并未一蹶不振,他收拢残部,一路安抚人心,迅速平定了冀州境内趁战败而反叛的诸多郡县,勉强稳住了河北的统治根基。可即便如此,袁绍军士气已衰、军心涣散,面对曹操蓄势待发的精锐之师,仓亭一战再度溃败,驻军被彻底击破,河北局势愈发危急。
九月,曹操见黄河以北暂无机可乘,便率军南返,回到东汉朝廷所在的许县。此时,汝南一带仍有刘备与黄巾旧部龚都联合盘踞,频频袭扰曹操后方,成为心腹大患。曹操稍作休整后,即刻挥师南下,亲征汝南。刘备自知兵力单薄,绝非曹操对手,未等曹军全力攻城,便率部弃城而走,南下投奔荆州牧刘表。龚都等部群龙无首,瞬间溃散,各自逃匿,汝南之地重归曹操掌控,许都南侧的威胁就此解除。
建安七年(公元202年)正月,曹操率军抵达家乡谯县驻军休整。看着故土风物,曹操一面安抚将士、抚恤乡里,一面谋划再度北征河北的大计。随后,大军开拔至浚仪县,曹操下令疏浚河道、治理睢阳渠。此举不仅方便了军粮运输,更惠及沿岸百姓,为后续北伐奠定了坚实的后勤基础。河道治理完毕后,曹操特意派遣使者,携带祭品前往已故太尉桥玄墓前祭拜。桥玄曾是早年赏识、提携曹操的名士,对其有知遇之恩,曹操此举,既是感念旧恩,也向天下彰显自己不忘根本、敬重贤达的胸襟。诸事完毕,曹操率军进屯官渡,将此地作为北伐袁绍的前沿阵地,剑指河北。
五月,河北传来重磅消息:袁绍自官渡、仓亭两度惨败后,忧愤成疾,久治不愈,最终病亡。袁绍一死,河北集团立刻陷入内乱,他的幼子袁尚在审配等心腹支持下擅自继位,而长子袁谭心中不服,只得率军屯驻黎阳,兄弟二人貌合神离,矛盾一触即发。
九月,曹操抓住袁绍新亡、袁氏兄弟不和的绝佳时机,亲率大军北上,直扑黎阳。袁谭、袁尚虽有嫌隙,却也知晓唇亡齿寒,只得暂时联手抵御曹军。黎阳城下,两军展开惨烈激战,曹军士气高昂、号令严明,袁谭、袁尚接连出战,却屡战屡败,损兵折将,只能紧闭营门,死守不出。
建安八年(公元203年)三月,曹操对黎阳发起总攻,一举大破袁谭、袁尚联军。袁谭、袁尚无力抵挡,只得弃城而逃,一路狂奔退回邺城。四月,曹操乘胜追击,率军直抵邺城城下,邺城作为袁氏经营多年的老巢,城高池深、守备坚固,曹军一时难以攻克。
五月,曹操审时度势,不愿在邺城之下过度消耗兵力,遂下令撤军,留部将贾信驻守黎阳,牢牢把控这一北伐咽喉要地,自己则率主力暂时南撤。
曹操南征的目标,直指荆州牧刘表。可他刚一退兵,河北的袁谭、袁尚便彻底反目成仇,为争夺冀州控制权兵戎相见,互相攻伐。袁谭兵力不及袁尚,连战连败,被迫退守平原县,陷入绝境。走投无路之下,袁谭只得派遣谋士辛毗为使者,前往曹操营中乞降求救,请求曹操出兵相助。
消息传来,曹操麾下诸将大多心存疑虑,认为袁谭为人狡诈,投降必有阴谋,纷纷劝说曹操不要轻信。唯有谋士荀攸力排众议,劝曹操答应袁谭的请求。曹操沉吟良久,道出心中谋划:“当年我攻打吕布之时,刘表坐拥荆州重兵,却始终按兵不动,未曾侵犯我方;官渡之战,袁绍与我生死相搏,刘表依旧坐观成败,不肯出兵相助。此人不过是个只求自保、胸无大志的贼寇,大可留待日后再慢慢收拾。反观袁谭、袁尚,兄弟阋墙,河北大乱,正是我一举平定北方的天赐良机。即便袁谭心怀诡诈,并非真心归降,只要我借此机会击破袁尚,夺取河北重地,对我军而言便是天大的利好。”
于是,曹操当即决定停止南征,回师北上。袁尚得知曹操出兵的消息,大惊失色,立刻放弃攻打平原,率军仓皇退回邺城。与此同时,袁尚麾下将领吕旷、吕翔眼见袁氏大势已去,不愿再为其卖命,率部背叛袁尚,归降曹操。曹操大喜,当即封二人为列侯,以示恩宠。
袁谭见吕旷、吕翔得势,便想暗中拉拢,私自刻制将军印绶,派人送给二人,企图收买人心。吕旷、吕翔忠心于曹操,当即把印绶上交。曹操见状,冷笑着对左右说道:“我早就料到袁谭会耍这种小聪明。他想借我之手击败袁尚,然后趁机收拢百姓、扩充兵力,自以为等我击破袁尚后,将士疲敝,他便可坐收渔利,与我抗衡。可他殊不知,我击破袁尚之后,势力只会更加强盛,何来疲敝之说?他的算计,终究是一场空梦。”
为稳住袁谭、麻痹袁尚,曹操还特意与袁谭缔结姻亲,下令让自己的儿子曹整迎娶袁谭的女儿,以此让袁谭暂时安心,也为自己彻底平定河北争取时间。
建安九年正月,曹操为解决北伐大军的粮草运输难题,亲率大军渡过黄河,下令截断淇水,将河水引入白沟,打通了一条通畅的水上运粮通道。粮草无忧,军心更稳,曹操彻底消除了远征河北的后顾之忧。
二月,袁尚不顾曹操压境,再次出兵攻打袁谭,邺城守备空虚。曹操抓住这一千载难逢的战机,亲率大军直扑邺城。当时,邺城由袁尚心腹苏由、审配联手镇守,苏由见曹军势大,暗中谋划归降,在曹操大军进至洹水时,便悄悄派人联络,举城内应之事败露后,苏由索性直接投奔曹操。
曹操大军抵达邺城外,立刻下令修筑土山、挖掘地道,从高空、地下两路同时攻城,攻势猛烈。此时,武安县长尹楷驻守毛城,负责打通上党地区的粮道,源源不断为邺城输送粮草,成为邺城坚守的关键。
四月,曹操留曹洪为主将,持续围攻邺城,自己则亲率精锐北上,一举击破尹楷,切断邺城粮道;随后又回师南下,攻破邯郸,击杀守将沮鹄。易阳县令韩范、涉县长梁岐眼见曹军所向披靡,袁氏败局已定,纷纷献城归降。
五月,曹操改变攻城策略,下令毁掉之前修筑的土山、地道,转而在邺城四周挖掘深壕,引漳河水灌入城中。大水围城,邺城内外隔绝,粮草耗尽,城中百姓与守军饿死过半,惨不忍睹,邺城早已岌岌可危。
七月,袁尚在前线得知邺城危急,大惊失色,立刻率主力回救。大军依托滏水安营扎寨,企图解邺城之围。曹操毫不留情,进军将袁尚营寨团团包围。袁尚见大势已去,心生恐惧,派人向曹操请求投降,曹操深知袁尚反复无常,断然拒绝。走投无路的袁尚只得趁夜突围逃跑,麾下大军群龙无首,瞬间溃散。袁尚孤身逃奔中山国,苟延残喘。
曹操命人将缴获的袁尚印绶、符节、斧钺拿到邺城城下展示,城中守军得知袁尚已败、主帅逃亡,斗志彻底崩溃,再无坚守之心。
八月,审配仍死守不降,可他的侄子审荣眼见城中饿殍遍地、败局无法挽回,深夜打开邺城东门,放曹军入城。曹操大军一拥而入,邺城宣告攻破。顽抗到底的审配被生擒,曹操念其忠心,却也知其不肯归降,最终下令将其斩杀。
攻克邺城后,曹操亲自来到袁绍墓前,设祭哭祭,追忆昔日与袁绍的旧交,感慨世事变迁。随后,他又亲自慰劳袁绍的妻子,将袁家被收缴的家人、宝物悉数归还,还赐给袁家大量绸缎、粮食,妥善供养其家人。此举既安抚了河北民心,也彰显了曹操的胸襟气度,让冀州百姓渐渐归心。
也是从这一年起,曹操正式将自己的政治、军事核心据点,从许县北迁至冀州邺城。此后,曹魏的政令颁布、军队调遣、官员任免,皆由邺城发出,曾经的东汉都城许县,只留下少量官吏维持朝廷门面,形同虚设。曹操以邺城为根基,彻底掌控了河北之地,为日后统一北方、建立曹魏基业,奠定了无可动摇的基础。
建安九年(204年)九月,曹操在彻底平定邺城、掌控冀州之后,为安抚河北民心、稳固新附之地,当即颁布一道极为重要的政令。他向全境宣告:“河北之地,久受袁氏父子连年征战、重役繁税之苦,百姓流离、田园荒芜,不堪其难。即日起,全境免除本年度全部租赋,使民得休养,田得复耕。”
与此同时,曹操又强力推行抑制豪强、严禁土地兼并的法令。袁绍在河北统治多年,纵容世家大族强占民田、隐匿人口、盘剥小民,致使贫者无立锥之地,富者田连阡陌。曹操一改旧弊,严明法度,清查田亩,打击强取豪夺,使普通百姓得以喘息。政令一出,冀州百姓无不欢欣鼓舞,奔走相告,民心迅速归附。
也在此时,曹操正式领冀州牧一职。冀州户口繁盛、地势险要、城池坚固,已是他实际的政治军事中心。为示谦退、不使朝廷猜忌,也为理顺职务,曹操上表汉献帝,主动辞去所兼的兖州牧一职。
而就在曹操围攻邺城、与袁尚主力决战之际,袁谭自以为得计,公然背弃盟约,趁河北大乱之机,大肆扩张地盘。他先后发兵攻取甘陵、安平、勃海、河间诸郡国,又趁袁尚自中山败逃、部众离散之时,进兵故安,击溃袁尚的残部,将其士卒、粮草、器械尽数收归己有,势力一时大涨,野心也愈发显露。
曹操得知袁谭背信弃义、擅自扩地,勃然大怒,当即修书一封,严厉斥责袁谭违约背盟、忘恩负义。随后,曹操正式宣布与袁谭断绝关系,废除两家婚约,命人将袁谭之女礼送回北方,彻底撕破脸面。做完这一切,曹操即刻点兵,进军讨伐袁谭。
十二月,曹军士气高昂,一路势如破竹,攻入平原郡境内,迅速平定沿途各县,将袁谭的势力范围一步步压缩。袁谭外无强援、内无固备,已然陷入绝境。
建安十年(205年)正月,寒风凛冽之中,曹操对袁谭发起总攻,一战而攻灭其部,阵斩袁谭,冀州、青州全境宣告平定。袁氏在河北经营数十年的根基,至此彻底崩塌。
此前,袁尚自邺城兵败后,北投幽州刺史袁熙。袁熙是袁绍次子,与袁尚本为兄弟,本想合兵一处,再图恢复。可就在这个月,幽州内部局势骤变。幽州大将焦触、张南等人早已看出袁氏气数已尽,不愿再为其陪葬,于是起兵发难,举兵反袁。袁尚、袁熙猝不及防,大败之下,只得向北逃窜,投奔与袁氏世代交好的三郡乌桓。
焦触随即自领幽州刺史,率领幽州各郡县全体归附曹操。北方重藩幽州,不战而定。
四月,盘踞太行山脉一带的黑山军首领张燕,眼见曹操平定河北、威行北方,自知无力抗衡,率领麾下部众、家属共计十余万人,全军归降曹操。曹操大喜,厚加安抚,黑山军这一长期威胁中原腹地的势力,就此和平解决,北方腹地再无大股割据武装。
同年,故安人赵犊、霍奴等人聚众起兵作乱,攻杀朝廷新任的幽州刺史,北方边境再度骚动。与此同时,与袁尚、袁熙勾结的三郡乌桓趁乱出兵,将曹操所置的犷平守将鲜于辅团团围困。边境告急文书接连送至邺城。
八月,曹操亲统大军再度北征,一战即斩杀叛军首领赵犊、霍奴,平定内乱。随后曹军急行军渡过河水,北上救援犷平。乌桓骑兵见曹操大军亲临、军容齐整,不敢争锋,仓皇溃逃,奔出塞外而去。
当初,袁绍曾任命其外甥高干为并州刺史,镇守并州。曹操攻破邺城、平定冀州之后,高干自知不敌,举州投降。曹操为安定并州,仍令其担任并州刺史。然而高干并非真心归服,只是权宜之计。
等到曹操北征乌桓、大军北上之际,高干以为有机可乘,突然举兵反叛曹操。他拘捕朝廷任命的上党太守,派兵扼守壶口关,凭险据守,阻断曹军西进之路,企图割据并州自立。
曹操得知后,当即派遣大将乐进、李典率军讨伐。高干退守险要的壶关城,凭险固守,乐进、李典一时难以攻克。
建安十一年(206年)正月,为彻底根除并州隐患,曹操亲自率军西征,围攻高干。高干自知难以抵挡,留下部将守城,自己弃城出逃,北上进入匈奴境内,拜见匈奴单于,请求出兵相助。可此时匈奴已不愿与曹操为敌,单于断然拒绝出兵。
曹操围攻壶关前后长达三月,城中粮尽、人心瓦解,最终城池陷落。高干见大势已去,只得南下逃亡,企图投奔荆州刘表。行至半途,被上洛都尉王琰截获捕杀,首级传送至曹操军前。并州之乱,就此彻底平定。
此后,曹操又率军东征淳于县,派遣乐进、李典进剿长期作乱沿海的海贼管承,大破其众,肃清海滨,使青、徐沿海一带恢复安定。
建安十二年(207年),曹操率军返回邺城,回顾数年来北定河北、东平海贼、西平并州的赫赫功业,为激励将士、酬谢功臣,他大规模封赏功臣,受封列侯者多达二十余人,其余有功将吏,也依次论功行赏,全军上下,人心振奋。
此时,北方虽大体平定,但袁尚、袁熙逃亡塞外,依附三郡乌桓,屡次引乌桓骑兵入塞侵扰,掳掠边民、抢夺财物,成为北方最大边患。曹操深知,若不彻底解决乌桓与袁氏残余,河北永无宁日。于是,他下定决心,远征塞外,一举肃清北境。
东汉末年,辽西、辽东、右北平三郡的乌桓部落相互联合,号为三郡乌桓,势力最强,其首领为辽西部的单于蹋顿。乌桓与袁氏世代交好,袁绍生前曾以朝廷名义封其首领为单于,彼此互为外援。多年来,三郡乌桓屡屡入塞,杀掠吏民、劫掠财产,边境百姓苦不堪言。
五月,曹操亲率大军北上,抵达无终(今河北玉田)。当时正值盛夏雨季,沿海道路积水成泽,浅处无法通行车马,深处不能承载舟船,大军寸步难行。
危急之时,当地名士田畴前来拜见,向曹操献策:放弃积水难行的滨海大道,改走一条早已废弃、但仍有小径可寻的旧道,出其不意,直插乌桓腹心。
曹操从其计,在田畴引导下,大军登徐无山,出卢龙塞(今河北喜峰口一带),一路开山填谷五百余里,穿越人迹罕至的险地,如神兵天降,直指乌桓老巢柳城(今辽宁朝阳南)。
八月,曹军进至离柳城不足二百里时,乌桓才猛然察觉。蹋顿当即与袁尚、袁熙等人集合数万精锐骑兵,仓促迎战。
两军相遇,乌桓骑兵人数众多、气势极盛;而曹军主力辎重尽在后方,披甲战士不多,左右将士无不惊惧。唯有大将张辽力主速战,极力劝说曹操立刻出击。
曹操登高远望,见乌桓军虽多,却阵势不整、号令不一,战机就在眼前。他当机立断,将自己手中的指挥麾旗授予张辽,令其暂领先锋,全权指挥突击。
张辽手持大旗,身先士卒,趁乌桓阵势尚未稳住、阵脚微动之机,率精锐铁骑发起雷霆猛攻。乌桓军大败,尸横遍野,单于蹋顿被当场斩杀,群龙无首,全军溃散。
白狼山一战,曹军大获全胜,胡、汉各族归降者达二十余万之多,三郡乌桓主力被彻底歼灭。
袁尚、袁熙等人仅带少数亲骑,向东逃窜,投奔割据平州的公孙康。
此时,麾下诸将多劝曹操乘胜东进,一举击灭公孙康,捉拿袁尚、袁熙。
曹操却笑着摇头:“我不用动兵,自会让公孙康斩下袁尚、袁熙的首级送来。”
于是下令全军班师回朝。
果然,曹军刚一撤退,公孙康便设计斩杀袁尚、袁熙,将其首级送至曹操营中。
诸将大为叹服,纷纷请教缘由。曹操道:“公孙康素来畏惧袁尚等人。我若急攻,他便会与袁尚合力抵抗;我若暂缓进兵,他们必然自相图谋。这是形势使然。”
至此,曹操彻底攻破三郡乌桓,肃清袁氏所有残余势力,北方全境,真正归于一统。
十一月,曹操率军行至易水,代郡乌桓行单于普富卢、上郡乌桓行单于那楼,率领各部名王、首领纷纷前来拜见祝贺,北方胡族尽数臣服,曹操声威,远播塞外。