袁尚、袁熙、辽西乌桓行单于蹋顿、辽西单于楼班、辽东乌桓单于峭王苏仆延(速仆丸/速附丸/速付丸)、右北平单于能臣抵之(于能臣)、右北平乌桓单于汗鲁王乌延、上谷乌桓大单于难楼王难楼等领数万骑奔向白狼山。
八月,曹操军刚登上白狼山,仓卒与乌桓虏遇,乌桓众骑甚盛。曹操车重在后,披甲者少,左右将领皆惧。
曹操登高,望乌桓虏阵不整,使荡寇将军张辽、偏将军张合为先锋,曹纯虎豹骑纵兵击之,偏将军徐晃、左度辽将军鲜于辅、乌桓校尉阎柔等将继进,护军韩浩、领军史涣压阵,乌桓众骑大崩。
曹操军阵斩蹋顿、乌延、难楼等,围攻乌桓老巢柳城不克,郭嘉献上周不疑破城十计,曹操选用一计,立刻破城。
于是,趁势追击逐北,扫荡四郡乌桓,胡、汉降者二十余万口。其中许多汉人口乃乌桓掠去的人口。
乌桓部落之一的乌桓王骨进曾大举入边,掠汉望族牛马、财物甚众。
曹操军扫北,辽西鲜卑素利部落引兵应曹操,袭乌桓部落之一的乌桓王骨进的大营,获马千匹,骨进败,几乎被擒,逃散遁北而去。其它鲜卑部落异视素利。
楼班、苏仆延、乌延,难楼等弃其种人,与袁尚、袁熙投奔辽东太守公孙康,其众尚有数千骑。
右北平乌桓大人寇娄敦、辽西乌桓都督王护留、辽西乌桓大人王同、辽西乌桓大人王寄等率一部向北逃入漠北。
有将劝曹操继续进兵击公孙康,曹操曰:“吾方使公孙康斩送袁尚、袁熙首级,不烦用兵矣。“
九月,曹操引兵自柳城还,走原定进攻路线返回。
时天寒且旱,二百里无水,军又乏食,曹操军杀马数千匹以为粮,凿地入三十余丈方得水。
郭嘉病死于路途中,曹操哭呼:“哀哉奉孝!痛哉奉孝!惜哉奉孝!”。
公孙康欲取袁尚、袁熙以为功,乃先置精勇之士于厩中,然后请袁尚、袁熙入,未及坐,公孙康叱伏兵擒之,于是斩袁尚、袁熙、楼班、苏仆延、乌延、难楼等首级送与曹操。