建安十年(205年)八月,幽州涿郡人赵犊、霍奴等聚众起事,杀了幽州刺史及涿郡太守。冀州和幽州之地刚刚被曹操打下来,这时正是非常敏感的时候,却出现造反的情况,曹操对此是绝对不能容忍的。因此,亲自率军进行讨伐。但这些人其实就是一些乌合之众,在曹军面前不堪一击,赵犊、霍奴等人最终被斩杀。
建安十年夏,辽西、辽东、右北平三郡的乌桓族人攻略犷平,围攻左度辽将军鲜于辅。八月,曹操在击破赵犊等人后,渡过潞河援救犷平,结果乌桓军也不是曹军的对手,被打得逃奔出塞。
另一方面,袁尚的邺城此前被曹操攻破后,先投奔了中山郡卢奴,后来又跑到幽州投奔其次兄袁熙。建安十年(205)春,袁熙部将焦触、张南反叛,进攻袁氏兄弟,准备投降曹操。这时候,袁熙兄弟二人手下的军队已经不多,看到部将反叛,于是逃奔辽西投奔了乌桓。
同年四月,势力盛于一时的黑山军首领张燕率领其部众十余万人投降曹操。曹操封张燕为安国亭侯,食邑五百户,命他率军到邺城驻守。
在东汉末年,张燕也算是一方诸侯,并且非常善战。就连曾经实力最强的袁绍都被他熬死了,他仍然活蹦乱跳地活着呢。
张燕原名褚燕。中平元年(184年),黄巾起义爆发,褚燕聚集一帮少年为强盗,在山水间转战出击,待回到真定时,部众已经达到一万多人。中平二年(185年),当时博陵人张牛角也聚集起一伙人,自称将军,与褚燕合兵一处。褚燕推举张牛角为首领,进兵攻打瘿陶,张牛角被流箭射中,身受重伤,临死之前,命令他的部下尊奉褚燕为首领。张牛角死后,众人一起拥戴褚燕为首领,于是褚燕改姓张,唤作张燕。
张燕因身轻如燕,又骁勇善战,所以军中都称他为“飞燕”。后来张燕的部队不断壮大,与常山、赵郡、中山、上党、河内等地叛匪互相联络,叛匪中的小头领孙轻、王当等人,都带着部众归附到张燕麾下,张燕部众发展到近百万人,号称“黑山军”。黄河以北的各郡、县都受到侵扰,朝廷却无力派兵围剿。于是,张燕派使者到京城洛阳,上书朝廷请求归降。汉灵帝于是任命张燕为平难中郎将,使他管理黄河以北山区的行政及治安事务,每年可以向朝廷推荐孝廉,并派遣计吏到洛阳去汇报。
初平元年(190年),董卓迁都于长安,天下纷纷起兵讨伐,张燕于是带着他的部队与各路诸侯结盟。
初平二年(191年),袁绍与公孙瓒争夺冀州,张燕派部将杜长等人带兵帮助公孙瓒,最终被袁绍击败,张燕的手下部众稍稍散去了一些。
初平四年(193年),袁绍剿灭境内黑山军,后联合吕布与张燕的主力在常山展开激战。当时张燕拥有精兵数万人,战马数千匹。双方一连战斗了十余天,张燕军死伤虽多,袁绍军也感到疲惫,于是双方各自撤退。
建安四年(199年)三月,当时袁绍攻打公孙瓒,张燕与公孙续率兵十万,分三路援救公孙瓒,张燕的援军还未到,公孙瓒秘密派使者送信给公孙续,让他率五千铁骑到北方低洼地区埋伏,点火作为信号,公孙瓒打算自己出城夹击袁绍围城部队。结果公孙瓒兵败,公孙续被杀。
最终,张燕于建安十年率领部众十余万人投降了曹操。东汉末年又少了一方诸侯。