曹操命田畴率领他的部众作向导,进入徐无山,凿山填谷,行进五百余里,经过白檀(今河北滦平县东北小城子)、平冈(今辽宁凌源市西南),又穿过鲜卑部落的王庭,向东直指柳城(今辽宁朝阳市)。
距离二百余里时,乌桓人才发现。
袁尚、袁熙与蹋顿及辽西单于楼班、右北平单于能臣抵之等率领数万骑兵,迎击曹军。

八月,曹操登上白狼山(一名白鹿山,又称白狼堆,今辽宁喀喇沁左翼蒙古族自治县南六十里大阳山),突然遭遇乌桓军。
曹军只是先头部队,人数不多,车辆辎重都在后边,随行将士连身披铠甲的都很少,见乌桓军军力强盛,都感到畏惧,建议等后续部队赶上后,再行攻击。
张辽与曹操登高远望,看到乌桓军队型不整,便力排众议,建议曹操发动突袭。
曹操采纳了张辽的建议,把自己所持的麾授予给张辽暂用,由他指挥先锋部队出战。
《魏武军令》云:“麾前则前,麾后则后,麾左则左,麾右则右。不闻令而擅前后左右者斩。”
曹操将麾临时授予张辽,等于暂时将军队指挥权交给了张辽。
张辽率军突击,大破乌桓军队,临阵斩杀了蹋顿。
乌桓军全线溃败,战死的士兵遍布山野,其余皆降,共有二十余万胡人和汉人投降。
辽东单于速仆丸与袁尚、袁熙带着残存的数千名骑兵,投奔平州(今辽宁辽阳北)公孙康。
白狼山之战,让张辽名声卓著,脱颖而出。
后世也因为白狼山之战而对张辽多有赞誉。
唐朝的昭文馆大学士作诗《登长城赋》,把张辽与卫青、霍去病相提并论,诗曰:“卫青开幕,张辽辟土,校尉嫖姚,将军捕虏。”
有人劝曹操乘势追击,曹操说:“不必再劳师动众了。不久之后,公孙康就会送来袁尚、袁熙的人头。”

九月,曹操率军从柳城班师,一路历尽艰辛。
当时天寒,又遇上大旱,二百里没有水,军队缺乏粮食,只好杀死几千匹战马作为军粮,挖地三十余丈才见到水。
在如此恶劣的环境下,郭嘉因为水土不服,加上日夜急行又操劳过度,患上了疾病。
曹操非常着急,派去探问的人一个接着一个,随时关注他的病情。
郭嘉日益病重,最终不治身亡,年仅三十八岁。
曹操谋士众多,唯独郭嘉最了解他,两人关系亲密,行则同车,坐则同席,犹如朋友一般。
郭嘉不拘小节,经常做出一些异于常理的举动。
曹操治军严厉,这些行为如果发生在别人身上,估计早就身首异处了,但在偏爱郭嘉的曹操眼里,却变得都不是什么事了。
陈群任司空西曹掾时,就因郭嘉行为上不够检点奏了他一本。
曹操一面表扬陈群检举有功,一面却对郭嘉不闻不问,甚至还暗地里为他这种生活作风表示赞许。
曹操对郭嘉,有句话常常挂在嘴边,那就是:“此乃非常之人,不宜以常理拘之。”
曹操对郭嘉非常信任,每次征战,总是把郭嘉带在自己身边,以便随时请教,见机行事。
郭嘉也确实有过人之处,每逢军国大事,可谓算无遗策。
郭嘉去世后,曹操亲自前去吊丧,对荀攸等人说:“你们诸位的年纪和我是同辈,只有郭奉孝(郭嘉字)年纪最轻。我本打算,待天下战事完毕,还要把身后的事务托附给他,而他却中年早逝,真是天嫉英才啊!”
随即上表,增加郭嘉封邑八百户,连同以前所有,共一千户,追谥贞侯,由他的儿子郭奕继承。

十一月,曹操到达易水,乌桓代郡部落单于普富卢、上郡部落单于那楼都来向曹操祝贺,表示服从。
第二年,即建安十三年(208年)正月,曹操才回到邺城,着手调查以前劝阻他出兵征讨乌桓的人,众人不知道他是什么目的,都心怀畏惧。
结果,曹操对那些劝阻过他出兵的人大加厚赏,对他们说:“我先前出兵,实在危险,虽然侥幸获胜,全是靠上天保佑,不能作为常规。你们的意见,才是万全之计,所以加以赏赐,以后大家要勇于提不同意见啊。”
曹操论功行赏,封田畴为亭侯,封地五百户。
田畴说:“我当初是为刘虞报仇,率众逃亡,我的志愿没有达成,反而以此获利,这不是我的本意。”坚决辞让,不肯接受封爵。
曹操知道田畴是出于真心,同意了他的辞让,没有勉强他。

二袁逃到辽东后,袁尚同袁熙商量说:“我们到了辽东,公孙康必然见我,我一个人就可以为兄长亲手杀了他,以此占领辽东,扩张我们的势力。”
哪知公孙康也想要杀死袁尚、袁熙,好向东汉朝廷邀功。
他预先在马厩中埋伏精兵,请袁尚、袁熙进去。
袁熙起疑,不愿进马厩,被袁尚强拉着一起走了进去。
二人还没来得及入座,伏兵就冲了出来,把他们捉住,让他们坐在结冰的地上。
袁尚冷得直哆嗦,对公孙康说:“我们好歹还没死,这地上也太寒冷了,忍受不了,能给我们坐席吗?”
袁熙看着袁尚,气愤地说:“你的头颅马上就要行万里路了,要席子干什么呢?”
公孙康哈哈大笑,下令斩杀袁尚、袁熙,连同速仆丸的人头一起送给曹操。
曹操封公孙康为襄平侯,授任他为左将军。
有人想起曹操以前说过,公孙康会送来二袁的首级,现在果然应验了,于是问他:“你都已经退军了,公孙康还要杀死袁尚、袁熙,这是为什么呢?”
曹操笑着说:“公孙康一向畏惧袁尚、袁熙,我如果急攻,他们就会合力抵抗,不去攻打他们,他们反而会自相残杀。当时的形势就是这样的。”
他命令把袁尚的头颅悬挂起来示众,并号令三军说:“有敢于哭泣的,处斩!”
牵招为军谋掾,随曹操征讨乌丸,到了柳城,任护乌丸校尉。
此时见了故主首级,牵招十分悲痛,在首级下设祭坛,放声悲哭。
曹操被牵招的义气所感动,认为他是忠于故主的义士,不但没有追究他,还推举他为茂才。
田畴因为曾被袁尚征召,也前往吊唁祭奠。
曹操也没追究。
自此,曹操彻底平定北方,统一了黄河流域以北地区。