袁绍兴兵,曹操起军七万,绍不听谋士劝阻,要急战。首战曹操败于袁绍弓箭,退守官渡。袁绍筑土山,挖地道,皆被刘晔用计防住。耗了很久曹操兵粮渐渐不足,而袁绍也不想急战,时许攸献计反遭袁绍大怒而投曹,献计乌巢劫粮,亲自去劫,家里也留大将留守,而乌巢守将淳于琼醉酒卧帐,完全没有准备,操大胜。
袁绍知乌巢有失,听郭图遣张郃、高览击官渡曹营以围魏救赵。遣蒋奇救乌巢,皆备曹操杀散,郭图恐张邰、高览回寨证对是非,进谗言使张邰、高览走投无路而投操,操从之,即令张邰、高览劫绍寨,绍军折其大半。荀攸献计放假消息要抄袁绍老家,袁绍闻之急遣将救援,曹操探知袁绍兵动,反打绍营,袁军俱无斗志,渡河而走。沮授想盗马归袁被操杀,最后操下令攻冀州。