不久後,曹操引兵向南,征討劉表,袁譚、袁尚反目成仇,互相攻擊。
袁譚不敵袁尚,敗走平原,遣辛毗向曹操乞降求救。
當時,諸將都懷疑有詐,只有荀攸勸曹操答應袁譚。
曹操說:“我攻打呂布之時,劉表沒有侵犯我方;官渡之戰時,他又不肯幫助袁紹。這只是個自守的賊子,應該等到以後再來對付他。而袁譚、袁尚狡猾,我正應該趁北方混亂時發動攻擊。就算袁譚挾詐,不肯真心屈服我軍,但我擊破袁尚,奪取他的地盤,對我軍也更加有利。”
於是,再次北上,袁尚聞訊也退回鄴城。
當時,袁尚部將呂曠、呂翔背叛袁尚,率眾投降曹操,曹操封兩人為列侯。
袁譚私自刻將軍印綬,交給呂曠兩人,呂曠把將軍印送給曹操。
曹操說:“我自然知道袁譚會耍些小聰明。他想讓我攻擊袁尚,然後趁機略民聚眾,自以為破袁尚後,實力足以自強,可趁我軍疲敝來與我抗衡。但擊破袁尚後,我的勢力更加強盛,哪可能會疲敝,讓他有機可乘呢?”
曹操為了讓袁譚暫時安心,還和袁譚結親,讓自己的兒子曹整娶袁譚的女兒。
建安九年204年)正月,曹操率兵渡過黃河,截斷淇水,引入白溝,作為運糧的通道。
二月,袁尚再次出兵攻打袁譚,曹操趁機進軍鄴城。
當時,蘇由、審配鎮守鄴城,曹操進軍到洹水時,蘇由投降。
曹操到達鄴城外,做土山、地道。
當時,武安長尹楷屯毛城,通上黨糧道。
四月,曹操留曹洪攻打鄴城,親自擊破尹楷,又擊破邯鄲的沮鵠,易陽令韓範、涉長梁岐皆舉縣投降。
五月,曹操毀土山、地道,作圍塹,決漳水灌城,城中餓死者過半。
七月,袁尚率軍回救,依滏水為營,曹操進軍將其營寨包圍。
袁尚害怕,請求投降,曹操不許。
袁尚乘夜逃跑,袁軍潰散,袁尚逃奔中山。
曹操命人拿著繳獲袁尚的印綬節鉞招降鄴城守軍,城中鬥志崩潰。
八月,審配的侄子審榮開啟東城門,曹操軍一舉攻破鄴城,擒殺審配。
之後,曹操哭祭袁紹墓,慰勞袁紹妻子,將袁紹的家人和寶物都還給了袁家,並賜給他們雜繒絮,供養他們家。
從這一年起,曹操把自己的據點北遷到了冀州的鄴城,政令軍隊此後皆從此出,而許縣則只留些許官吏。
九月,曹操下令:“河北遭受袁氏之難,不用再上繳今年租賦!”
又嚴厲打壓豪強兼併,百姓喜悅。
曹操領冀州牧,並上表讓還兗州牧。
當初,曹操圍攻鄴城時,袁譚趁機攻取甘陵、安平、勃海、河間,又擊破故安的袁尚敗軍,兼併其眾。
曹操寫信給袁譚,責備他負約,與他斷絕婚姻,將他的女兒送回,然後進兵。
十二月,曹操進入平原,略定諸縣。
建安十年205年)正月,曹操攻滅袁譚,冀、青二州平定。
當初,袁尚兵敗後,投奔幽州刺史袁熙。
此月,幽州大將焦觸、張南起兵反袁氏,袁尚、袁熙又逃奔三郡烏桓。
焦觸自稱幽州刺史,舉郡縣歸附曹操。
四月,黑山軍首領張燕率領其部眾十餘萬人投降曹操。
故安人趙犢、霍奴起兵,殺死幽州刺史,三郡烏桓又圍攻鮮于輔於獷平。