公元200年,袁绍挑选10万精锐步兵、1万骑兵,以黎阳为大本营;命令颜良为先锋,渡河进攻白马。曹操用荀攸之计,扬言渡河抄袭
袁绍后路,袁绍命令颜良分兵一半到延津阻击曹操渡河;曹操命令于禁固守延津,以张辽、关羽为先锋,自己亲自领主力直扑白马,与东郡
太守刘延夹击颜良,颜良遂阵亡。袁绍大怒,命令全军渡河;又命另一心腹大将文丑与刘备为先锋,直扑白马。曹操放弃白马,向延津撤
退,并亲自帅精锐殿后,并故意放辎重;文丑、刘备带6000多骑兵追击,四散抢辎重;曹操乘机命令攻击,袁军大乱,文丑本人也被杀;
曹操为诱敌深入,退回官渡。袁绍又不听田丰的计谋,并将他押送到邺城。袁绍摆开联营,步步进逼;曹操作出反应,命令于禁、乐进攻击
两翼,大胜。袁绍为赢得胜利,在南方向李通、刘辟策反;李通不背叛反而领兵消灭暗通袁绍的地方豪强;曹操又命令曹仁、徐晃带领骑兵
星夜前往镇压刘辟、刘备。袁绍一计不成,又生一计,写书让江东孙策北上偷袭许昌;曹操谋士郭嘉认为孙策过于轻佻,必死于刺客之手,
果然不久,孙策受到仇人阻击,伤重而亡。曹操与袁绍相持日久,军粮不足,意欲退回许昌,
荀文若力劝曹操坚守,并最大限度支援前线。公元200年10月,曹操命令曹仁、徐晃等偷袭袁绍大将韩猛,烧毁韩猛押运的几千车粮草。袁
绍谋士许攸建议袁绍派偏师偷袭许昌,抢走汉帝,遭到拒绝后又因为家属被审配收监,许攸无奈投靠曹操,并建议曹操偷袭袁军粮草堆放地
乌巢;曹操留下曹洪等守大营,自己领夏侯渊、张辽、曹仁等直扑乌巢,同时命令徐晃偷袭袁军另外一粮草堆放地故市;曹军假装袁军,骗
过袁军的盘查,偷袭乌巢。消息传到袁绍耳中,袁绍不听从大将张合应重兵救乌巢的建议;却听从谋士郭图意见命张合、高览率重兵强攻曹
军大营,只派出少量骑兵救乌巢。救兵到达乌巢,曹操先集中全力攻下乌巢袁军营,擒守将淳于琼,烧毁所有物资;再回头击败来救的袁军
骑兵;同时徐晃也攻下故市,烧毁所有的物资。消息传到袁军大营,郭图为免获罪,造谣说张合为乌巢之败而幸灾乐祸,同时派人通知张合
说袁绍要杀张合,张合无奈投降曹军。曹操遂大举反攻,袁军毫无斗志,大部分投降曹军;袁绍等人仅仅与800亲兵逃走;后7万多投降的
士兵被曹操下令活埋,天才谋士沮授为曹操诚意所动而投降,后得知家属在河北安好意欲北逃而被杀;袁绍另一重要谋士田丰被听信谗言的
袁绍所杀。官渡大战,可以说是三国时期最精彩的战役,也是战争史上著名的范例;它标志着曹操正式称雄于北方,为北方的统一打下了基础。