袁谭被袁尚打败了,派人求救于曹操。曹操见机会不可失,才再回兵攻取河北。从建安九年(公元204年)二月里攻击袁尚的根据地邺城(汉邺县,今河南临漳县),到八月里才攻下。袁尚是本来在外面的,逃到中山(今河北定县)。此时袁谭已乘机占领了冀州的东部,就去攻击袁尚,袁尚逃到故安(汉县,今河北易县东南)去,依靠袁熙。曹操突然又和袁谭翻脸了。建安十年(公元205年),在南皮县(今河北南皮县)地方把他攻杀。袁熙、袁尚逃入乌丸。
乌丸亦作乌桓,乃是一种异民族,在现今热河、辽宁境内的,屡次侵犯边界。建安十一年(公元206年),曹操筹划出兵去征伐他,在现在河北的东北境辟了两条水路,以便运粮。十二年(公元207年)七月里出兵,因沿海大水,道路不通。先是刘虞被公孙瓒所杀,他手下的田畴,立意要和他报仇,就带着宗族,入居徐无山中(在今河北遵化县西)。避难的人民依附他的很多。田畴替他们立起章程,申明约束,居然很有条理,北边都很信服他。曹操出兵时,把田畴也招罗在军中。田畴说:旧北平郡之北,本来有一条路,出卢龙塞到柳城去的(这是从今遵化向东北龙井关的路。柳城,汉县,在今辽宁兴城县西南)。从后汉以来,路绝不通,然而还有些痕迹。倘使从这一条路出兵,攻其不备,一定可大获全胜的。曹操听了他的话,就从这条路出去。果然一战而杀了三个乌丸的酋长,剩下来一个,和袁熙、袁尚逃到辽东。当时的辽东太守是公孙康,也是要据地自立的,袁熙、袁尚的资格岂能服从他?所以有人劝曹操进兵辽东,曹操就逆料他们不能相容,径从柳城回兵。果然公孙康把袁熙、袁尚的头送来了。到此,袁氏才算全灭。