袁尚c袁熙与蹋顿以及辽西单于楼班c右北平单于能臣抵之等率领数万名骑兵迎击曹军。八月,曹操登上白狼山,突然与乌桓军相遇,而乌桓军军力强盛。曹军车辆辎重都在后边,身披铠甲的将士很少,曹操左右的人都感到畏惧。曹操登高,看到乌桓军队不整,就纵兵攻击,派张辽为先锋,乌桓军队大乱,斩杀蹋顿和各部落王爷及以下的乌桓首领,投降的胡人与汉人共有二十余万。
辽东单于速仆丸与袁尚c袁熙投奔辽东郡太守公孙康,跟随他们的还有数千名骑兵。有人劝曹操乘势追击,曹操说:“我将使公孙康送来袁尚c袁熙的人头,不必再劳师动众。”九月,曹操率大军从柳城班师。公孙康想要杀死袁尚c袁熙,作为对朝廷立下的功劳,于是先埋伏精兵在马厩中,然后请袁尚c袁熙进来,他们还没来得及入座,公孙康叫出伏兵,把他们捉住。于是斩杀袁尚c袁熙,连同速仆丸的人头一起送给曹操。将领中有人问曹操:“您已退军而公孙康杀死袁尚c袁熙,这是为什么?”曹操说:“公孙康一向畏惧袁尚c袁熙,我如果急攻,他们就会合力抵抗;缓和时,他们就会自相残杀;是形势使他们这样做的。”曹操把袁尚的头颅悬挂起来示众,号令三军:“有敢于哭泣的,处斩!”牵招却独自设祭,放声悲哭,曹操认为他是忠于故主的义士,推荐他为茂才。
当时天寒,又遇上大旱,二百里没有水,军队缺乏粮食,只好杀死几千匹战马作为军粮,挖地三十余丈才见到水。大军返回后,曹操调查以前劝阻他出兵征讨乌桓的人,众人不知道是因为什么,都心怀畏惧。曹操对劝阻者都加以厚赏,对他们说:“我先前出兵,实在危险,虽然侥幸获胜,全是靠上天保佑,不能作为常规。你们的意见,才是万全之计,所以加以赏赐,以后不要害怕提相反的意见。”
十一月,曹操到达易水,乌桓代郡部落单于普富卢c上郡部落单于那楼都来向曹操祝贺。
大军回到邺城,论功行赏,封田畴为亭侯,封地有五百户。田畴说:“我当初是为刘虞报仇,率众逃亡,我的志愿没有达到,反而以此获利,这不是我的本意。”坚决辞让,不肯接受封爵。曹操知道田畴是出于真心,同意他的辞让,没有勉强他接受。
后来曹操追念田畴的功劳,后悔以前允许他辞让封爵,说:“这是成全一个人的志愿,而破坏国家的法制。”于是,仍用先前要封的爵位来封他。田畴上书,表达自己的诚意,誓死不肯接受。曹操不听,想要拉他来拜封,甚至再三再四地施加压力,田畴始终不肯。有关部门弹劾田畴说:“田畴自命清高,违背圣人大道,只顾建立自己的名节,应该免除官职,加以处分。”曹操命令世子曹丕与大臣们共同商议这事,世子曹丕认为:“田畴的行动,与从前楚国的令尹子文辞让俸禄,申包胥逃避赏赐的情况相同,不应勉强,以此来褒扬他的节操。”尚书荀c司隶校尉钟繇也认为可以允许田畴辞让。曹操仍然想封田畴为亭侯,因田畴一向与夏侯关系亲密,曹操就派夏侯自己前去用友情说服田畴。夏侯在田畴的住处进行劝说,田畴知道他的来意,不再说话。夏侯临走时,还坚持要田畴接受,田畴说:“我是一个辜负故主恩义,逃避危险的人。蒙受大恩,得以活命,已是大幸了,怎么能靠出卖卢龙塞而换取封爵呢?即使是朝廷对我特别优待,难道我心中不惭愧吗?将军是一向了解我的,还这样勉强我接受,如果迫不得已,我情愿一死,在您的面前自刎。”话还没有说完,已泪流满面。夏侯一一向曹操汇报,曹操叹息,知道不能让田畴屈服,于是任命田畴为议郎。
曹操出兵北伐乌桓时,刘备劝刘表发兵袭击许都,刘表不能用他的计策。等听到曹操得胜班师的消息,刘表对刘备说:“没有听你的话,结果失掉这个大好机会。”刘备说:“如今天下分裂,战争不断,机会的到来,难道会有