曹操表面上放弃白马,命令主力开向延津渡口,摆开渡河架势。袁绍怕后方受敌,迅速率主力西进,阻挡曹军渡河。谁知曹操虚晃一枪之后,突派精锐回袭白马,斩杀颜良,初战告捷。
由于两军相持了很长时间,双方粮草供给成了关键。袁绍仗势从河北调集了一万多车粮草,屯集在大本营以北四十里的乌巢,因为他不把小小的曹操放在眼里,于是没有安派重兵。曹操探听乌巢并无重兵防守,决定偷袭乌巢,断其供应。他亲自率五千精兵打着袁绍的旗号,衔枚疾走,夜袭乌巢,乌巢袁军还没有弄清真相,曹军已经包围了粮仓。一把大火点燃,顿时浓烟四起。
曹军乘势消灭了守粮袁军,袁军的一万车粮草,顿时化为灰烬,袁绍大军闻讯,惊恐万状,供应断绝,军心浮动,袁绍一时没了主意。曹操此时,发动全线进攻,袁军士兵已丧失战斗力,十万大军四散溃逃。袁军大败,袁绍带领八百亲兵,艰难地杀出重围,回到河北,从此一蹶不振。