10月,曹操返回邺城。而高幹趁曹操亲征乌桓之机,再次反叛。生执上党太守,派兵守住壶关口。曹操得知后,便派乐进、李典二人率兵前去征讨。
同时举兵的还有河内张晟,聚众万余,寇崤、渑之间;弘农张琰;河东卫固、范先等人。
河东太守王邑被朝廷征召,卫固、范先去见司隶校尉钟繇,请留王邑。被钟繇拒绝。卫固等人便以请王邑为名,与高幹通谋,准备反叛。荀彧向曹操推荐西平太守杜畿。曹操当即任命杜畿为河东太守。钟繇也催促王邑尽快与杜畿办完移交手续。
卫固派兵数千人守住陕县黄河渡口。杜畿数月不得渡河上任。曹操得知后,急忙派夏侯惇率兵前往。不过夏侯惇兵马未到,杜畿已想出了办法。诡道从郖津成功渡河。
卫固、范先等人决定给终于到任的杜畿一个下马威,就在杜畿面前斩杀了主簿以下30余人,却见杜畿举动自若,毫不以为意。于是卫固道“杀了他,徒留我们的恶名。且看来这个人也是很好控制的嘛”遂奉杜畿为主。
杜畿也表现出了对这些地头蛇的极大尊重:以卫固为都督,行丞事,领功曹;将校吏兵3千余人,皆由范先统帅。以这办法成功麻痹了卫固、范先等人,史称“善人在外,阴为己援。恶人分散,各还其家”
这时又正好传来消息“白骑攻东垣,高幹入濩泽”杜畿便决定乘此机会脱离卫固等人的掌握。他只率数十骑出外,官吏百姓纷纷举城来附。数十日间,已得四千余人。卫固这才知大事不妙,急忙联络高幹、张晟等人,联兵攻打杜畿,但攻不下来。曹操又命议郎张既征发马腾等关中诸将出兵,最后张晟兵败,卫固、张琰被杀,其余党羽尽皆赦免。
杜畿治理河东郡16年,治绩常为天下之最。务崇宽惠。民有辞讼,畿为陈义理,遣归谛思之,父老皆自相责怒,不敢讼。劝耕桑,课畜牧,百姓家家丰实。然后兴学校,举孝悌,修戎事,讲武备,河东遂安。
面对“政在曹氏,天子恭己”的现状,秘书监、侍中荀悦志在献替,而谋无所用,本年写下《申鉴》五篇,上奏朝廷。
206年1月,曹操命世子曹丕留守鄴城,崔琰傅之。自己则亲征高干。围攻壶关两个多月。3月,壶关终于开关投降。高幹逃往南匈奴求救,呼厨泉单于不受。高幹转欲南逃荆州,被上洛都尉王琰捕斩。至此,冀、幽、青、并四州皆被曹操平定。
曹操任命梁习为并州刺史。当时正值荒乱之余,胡狄雄张,豪强拥兵,各为寇害。梁习到任后,诱喻招纳,礼召豪强,征发丁壮为兵。吏兵已去之后,又将其家属迁徙,前后送往鄴城者达数万口。不肯服从命令的就发兵征讨,斩首千数,降附者万计。最终使得“边境肃清,百姓布野,勤劝农桑,令行禁止。长老称咏,以为自所闻识,刺史未有如梁习者”
梁习还积极向朝廷举荐避难到并州来的名士如常林、杨俊、王象、荀纬、王凌等人,曹操把他们都任命为各县县长,后皆显名于世。其中最有名的当属一个叫仲长统的人。当初仲长统游学并州,受高幹优待,咨以世事。但仲长统的直言令高幹不悦,仲长统便也辞去。高幹死后,由荀彧推荐为尚书郎。所著《昌言》,言天下治乱之道,非常有名。
7月,武威太守张猛杀害雍州刺史邯郸商。又被当地州兵杀死。
8月,曹操亲征海贼管承,来到北海国淳于县。派乐进、李典二人出击管承。管承兵败,逃入海岛。
8月,昌豨再次反叛,曹操派于禁将其击斩。
本年,汉献帝刘协下诏撤销齐、北海、阜陵、下邳、常山、甘陵、济北、平原八个诸侯国。曹操为报16年前琅邪王刘容遣其弟刘邈到长安奉贡时,盛赞曹操对皇室忠诚的这一恩德,便让刘协立刘容之子刘熙为琅邪王。恢复因刘容去世而绝国13年的琅琊国。
如今,北方基本已平定,曹操把下一个敌人锁定在了号称天下精骑的乌桓这一少数民族身上。乌桓族乘汉末天下大乱之际,攻破幽州,略有汉民10余万户。袁绍在时,曾立其酋豪为单于,并以家人之子为自己的养女,嫁与乌桓单于。在各郡乌桓之中,数辽西郡乌桓蹋顿单于实力最强,与袁绍的关系也最好。所以袁熙、袁尚兄弟逃出塞后,就去投奔蹋顿。蹋顿也数次以“欲助袁氏恢复故地”为名,出兵入塞。曹操为亲征乌桓做准备,特意于本年下令凿通平虏、泉州二渠,以做通运之用。
207年2月,曹操返回鄴城。5日,曹操奏请为跟随自己举义兵、诛暴乱17年多来的大功臣20余人封侯。尤其表奏万岁亭侯荀彧的功勋。3月,荀彧被增封千户食邑。曹操还想封荀彧三公的朝廷高位,荀彧让从侄荀攸替自己辞让了十数次,乃止。
对于曹操将亲征乌桓的决定,诸将都表示反对“夷狄贪而无亲,岂能为亡虏袁尚所用?此不足为虑。反而若刘备乘此机会,说动刘表偷袭许都,则不可不防”只有郭嘉认定曹操此次远征必定成功。而刘备即便有偷袭许都之心,刘表也断不会同意。
曹操最终决定进行这场远征。来到河间国与涿郡交界的易县时,郭嘉又劝曹操留下辎重,轻骑速进,打乌桓一个措手不及。此时郭嘉已重病垂危,曹操只能留下郭嘉在易县养病,自己率大军日夜疾进。
5月,大军到达右北平郡无终县。过了右北平郡便是辽西郡了。这时曹操