建安十年(205年)正月,曹操又以負約爲名,攻滅袁譚,冀、青二州平定。于是,曹操上表讓還兖州牧,改任冀州牧。
袁尚兵敗後,逃奔幽州刺史袁熙,不久,袁尚、袁熙又逃奔三郡烏桓。同年,黑山軍首領張燕率領其部衆十餘萬人投降曹操。
建安十一年(206年),曹操攻滅高幹,平定并州。
建安十二年(207年),曹操爲了肅清袁氏殘餘勢力,也爲了徹底解決三郡烏桓入塞爲害問題,決定遠征烏桓。
漢末,遼西、遼東、右北平三郡烏桓結合,是爲三郡烏桓,其首領爲遼西部的蹋頓。三郡烏桓與袁氏關系一直很好,并屢次侵擾邊境,擄掠人口财物。
五月,曹操親率大軍到達無終(今薊縣)。時正雨季,道路積水,“淺不通車馬,深不載舟船”。曹操從無終人田疇之議,改從一條久已斷絕,但“尚有微徑可尋”的路線進軍。
在田疇的引導下,曹操大軍登徐無山(今河北玉田北),出盧龍塞(今河北喜峰口附近),“塹山堙谷五百餘裏”,直指烏桓老巢柳城(今遼甯朝陽南)。
八月,曹軍進至離柳城不足二百裏時,烏桓才發現,于是蹋頓與袁尚、袁熙等人率數萬騎兵迎擊。二軍相遇,時曹軍辎重在後,“被甲者少,”而烏桓軍軍勢甚盛。
曹操登高了望,見烏桓軍雖多,但陣勢不整,遂命大将張遼爲前鋒,乘烏桓軍陣稍動之機,向烏桓軍發動猛攻。
烏桓軍大亂,曹軍陣斬蹋頓,大獲全勝,胡、漢降者二十餘萬,袁尚等人逃奔割據平州的公孫康。
這時,有人勸曹操乘勢進擊公孫康,曹操說:“吾方使康斬送尚、熙首,不煩兵也。”遂率軍還師。
不久,公孫康果然斬殺袁尚、袁熙,并将其首級獻與曹操。諸将不明所以,曹操說:
“彼素畏尚等,吾急之則并力,緩之則自相圖,其勢然也。”
于是,曹操攻破三郡烏桓,也徹底肅清了袁氏勢力。
十一月至易水,代郡烏丸行單于普富盧、上郡烏丸行單于那樓将其名王來賀。同年郭嘉因水土不服、氣候惡劣、日夜急行操勞過度,在曹操北歸前病逝。
歸程途中,據《曹瞞傳》記載:“時寒且旱,二百裏無複水,軍又乏食,殺馬數千匹以爲糧,鑿地入三十馀丈乃得水。既還,科問前谏者,衆莫知其故,人人皆懼。公皆厚賞之,曰:‘孤前行,乘危以徼幸,雖得之,天所佐也,故不可以爲常。諸君之谏,萬安之計,是以相賞,後勿難言之。’”
建安十三年(208年),開辟玄武池訓練水軍。六月,曹操廢三公,恢複丞相制度,并自任漢朝丞相。基本平定北方後,兵鋒轉而南向。
七月,進軍南征荊州劉表。
八月,劉表病死,其子劉琮接任荊州牧。
九月,曹操大軍進至新野,劉琮以爲無法抵擋,舉荊州之衆投降曹操。
這時,官渡之戰後投奔劉表的劉備屯駐于樊城(今湖北襄樊),聽說劉琮投降,便率軍向江陵(今屬湖北)撤退。
江陵爲荊州重鎮,存有大量軍用物資。曹操聽說,怕江陵落入劉備之手,遂親率五千騎兵從襄陽(今湖北襄樊)疾馳三百裏,在當陽長坂(今湖北當陽東北)将劉備追上,大破其軍,随後進占江陵。
曹操在擊潰劉備後,乘勢想一舉鲸吞江東,孫權、劉備兩家在魯肅和諸葛亮等人的努力下,組成聯盟,孫權命都督周瑜率軍三萬,與劉備的兩萬人馬組成聯軍抵抗曹操。
曹操自江陵東下,至赤壁(今湖北武昌縣西赤矶山)與孫、劉聯軍接戰不利,暫駐軍于烏林(今湖北洪湖縣東北),與對方隔江對峙。
周瑜用詐降之計,命大将黃蓋率小戰船十艘,上裝柴草,灌以膏油,船頭釘上大釘,假稱投降,向北岸而進,至離曹營二裏之處時,各船一齊點火,然後借助風勢,直向曹軍沖去,曹軍大敗,舟船被燒。
曹操率軍從華容道(今湖北監利西北)陸路撤回江陵,撤軍北還。
赤壁戰敗後,曹操采取一些措施,穩定内部。
建安十五年春,曹操下《求賢令》,說:“今天下尚未定,此特求賢之急時也……二三子其佐我明揚仄陋,唯才是舉,吾得而用之。”
曹操提出不拘品行、唯才是舉的用人方針,目的是盡量把人才收羅到自己身邊。
建安十六年(211年),曹操開始對關中用兵。三月,曹操遣司隸校尉鍾繇率大将夏侯淵以讨伐漢中(治南鄭,今陝西漢中東)張魯爲名進兵關中。
關中馬超、韓遂、楊秋等十部心生疑懼,一時俱反。曹操立即派大将曹仁進攻關中,馬超等人屯據潼關。
七月,曹操率大軍親征關中,大敗關中聯軍,馬超等因之欲割地求和,曹操不允。
九月,馬、韓等再次請求割地,并送任子以求和,曹操采納賈诩的建議,僞許之,并再次大敗韓、馬軍。韓遂、馬超敗走涼州,楊秋則逃回安定,曹軍陣斬成宜和李堪等叛将,關中自此平定。
十月,曹操進軍安定,楊秋投降。曹操率軍撤回,命夏侯淵督衆将繼續西征,在兩年内,逐馬超、破韓遂、滅宋建、橫掃羌、氐,虎步關右,涼州地區基本平定。
建安十七年(212年),漢獻帝準許曹操“參拜不名、劍履上殿”,如漢丞相蕭何故事。
建安十八年(213年),曹操起兵号稱四十萬,親自南征孫權。次年正月,曹軍進至濡須口(今安徽巢縣東南),攻破孫權設在江北的營寨,生擒其将公孫陽。
孫權親率軍七萬,前至濡須口抵禦曹軍。二軍相持月餘,各無所獲。曹操見孫權軍容嚴整,自己難以取勝,遂撤軍北還。
同年五月,複《禹貢》九州。漢獻帝冊封曹操爲魏公,加九錫、建魏國,定國都于邺城。魏國擁有冀州十郡之地,置丞相、太尉、大将軍等百官。