而当袁绍听说曹操袭击乌巢时,认为这正是攻破曹操大营的好机会,因此派去的援兵很少,而以重兵围攻曹操大营。
由于曹操预留兵力精且多,曹营未破,乌巢败讯已经传来,大将张郃、高览等人率部投降曹操,袁军溃散。袁绍弃军逃回黄河以北。曹军大获全胜,斩首七万余级,尽获袁军辎重图书珍宝。曹操清点袁绍书信,得到自己部下勾结袁绍的信,尽烧之,说:“当绍之强,孤犹不能自保,而况众人乎!”
客观条件上,曹操处于劣势,但由于他能正确分析客观条件,善于听取别人的正确意见,所以能扬长避短,采用正确的战略战术,使战争向有利于自己的方面转化,经过自己主观上的努力,终于赢得了胜利。官渡之战,曹操击溃了最大的敌人袁绍,由他统一北方已是大势所趋。官渡之战也是中国战争史上以少胜多、以弱胜强的著名战例。
远征乌桓
建安七年202年,袁绍病死,袁绍的两个儿子袁谭、袁尚不和,发生火拼。袁谭不敌袁尚,向曹操乞降。
建安九年204年二月,曹操乘袁尚出兵攻打袁谭之机,进军围攻邺城今河北邯郸临漳西一带。袁尚率军回救,依滏水今滏阳河为营,曹操进军将其营寨包围。
袁尚害怕,请求投降,曹操不许。袁尚乘夜逃跑,袁军溃散。袁尚逃奔中山今河北定县。曹操命人拿着缴获袁尚的印绶节钺招降邺城守军,城中斗志崩溃。邺城遂被曹操攻破。从这一年起,曹操把自己的据点北迁到了冀州邺城26,政令军队此后皆从此出,而汉献帝的都城许县则只留些许官吏。
建安十年205年正月,曹操又以负约为名,攻灭袁谭,冀、青二州平定。于是,曹操上表让还兖州牧,改任冀州牧。袁尚兵败后,逃奔幽州刺史袁熙。不久,袁尚、袁熙又逃奔三郡乌桓。同年,黑山军首领张燕率领其部众十余万人投降曹操。27
建安十一年206年,曹操攻灭高干,平定并州。
建安十二年207年,曹操为了肃清袁氏残余势力,也为了彻底解决三郡乌桓入塞为害问题,决定远征乌桓。汉末,辽西、辽东、右北平三郡乌桓结合,是为三郡乌桓,其首领为辽西部的蹋顿。三郡乌桓与袁氏关系一直很好,并屡次侵扰边境,掳掠人口财物。