军营前抢挖了一条很深的沟,蓄满水,只要袁绍的地道一挖到壕沟,水就灌入地道,这又破坏了袁绍的计谋。
尽管曹操打败了袁绍的多次进攻,但时间一久,粮草供应越来越困难,简直使曹操陷入一筹莫展的境地。曹操自知比起袁绍,他兵少粮缺,将士们东征西讨,南攻北伐也太疲劳了,恐怕支撑不了多久,便有意撤军回许都。他写信给荀彧,荀彧回信,借用了当初刘邦、项羽在荥阳、成皋相持的经验,说明现在袁、曹两军,谁先退谁的气势就会受挫。荀彧还表示尽力筹措军粮,支援官渡。曹操从荀彧那里得到了信心,他一边坚守官渡阵地,一边派骑兵四处侦探,寻找出奇制胜的时机。
不久,徐晃的部将打听到袁绍的大将韩猛从冀州运来军粮数千车,支援袁绍驻兵,即将到达。曹操就派徐晃率骑兵突袭,韩猛毫无戒备,战败而逃,几千车粮食全部被烧光。
时间一晃,袁、曹两军官渡之战已僵持半年之久。曹操急于速战速决,他绞尽脑汁筹划计谋。突有卫兵来报,从袁军那边跑来一个名叫许攸的官员,说有急事求见。许攸是曹操过去的朋友,曹操像对老朋友一样接待了他。许攸是因为在袁绍那里受了委屈,来投奔曹操的。原来,在袁绍轰走沮授后,许攸向他献计说:“曹军兵少,主力又在官渡与我军相持半年之久了,想必都城许昌一定空虚。请将军派一支轻骑兵,赶往许都,一定会毫不费力地得到许昌。”可袁绍却拍着桌案上的文书,瞪着眼睛,对许攸说:“邮城来报告说你的家属犯了法,已被审配逮捕入狱。你连家属都管不好,怎么还敢在我面前出主意呢?”许攸又气又羞,无意留在袁营,连夜投奔曹操。曹操听完,笑着说:“你来到我这儿,大事已经成功了!”许攸向他一一介绍乌巢的粮情和兵情,而且建议曹操派兵去袭击乌巢。他说:“袁绍派在乌巢看守粮仓的淳于琼是个骄傲自大、喜欢饮酒、警惕性特差的人。只要烧了乌巢的粮草,不出三天,袁军就会不战而乱,您就会结束官渡的相持局面,大获全胜了!”于是曹操就召集谋士们商量袭击乌巢的方案。
经过周密策划后,一天夜里,曹操派曹洪等将军守营,以防袁军前来偷袭。自己和张辽、于禁、徐晃等,精选5000名步骑兵,打上袁军的旗号,悄悄离开了官渡,向乌巢进发。途中碰上袁军哨兵,张辽骗他们说:“我们是蒋奇的人马,是袁将军派来加强乌巢守备的。”而且不等袁军哨军靠近,张辽就走近一步,压低了声音,装出神秘的样子,说:“袁将军听说曹操要来偷袭乌巢,就派我们赶来增援。”袁军哨兵一见旗上斗大的“袁”字,而且因乌巢就在袁军大营之后,怎么也不会有敌人来,便不再怀疑,放他们过去了。黎明以前,曹军抵达了乌巢。而此刻夜夜饮酒的淳于琼睡得正香,袁军还来不及穿衣,曹军就冲了进来。霎时间,粮囤到处起火,浓烟滚滚,直冲云霄,淳于琼也被曹操大将乐进一刀给收拾了,不久战斗就结束了。
乌巢这边火光冲天,不远处的袁营看得真切。大将张郃劝袁绍立即援助淳于琼,同时切断曹军退路,而袁绍在关键时刻一错再错,听信谗言,置乌巢于不顾,让张郃、高览二将前去袭击曹军大营。张郃苦苦劝说:“曹操很会用兵。他既然派精兵去偷袭乌巢,那么官渡的守备也一定不会放松,还是先去援助淳于琼吧!”袁绍仍执迷不悟,张郃、高览只好勉强带兵出发。袁军进攻官渡,遭到曹洪守军的坚决抵抗,背后又受到从乌巢回师官渡的曹军的猛烈攻击。张郃腹背受敌,抵挡不住,加之不满袁绍的虚伪奸诈,就和高览一起投降了曹操。
乌巢粮草被烧,张、高二将投降,袁军果然不战自乱,曹军乘胜全军出击,袁绍还没来得及穿上盔甲,只穿着便服,扎着头巾,带着800名骑兵仓皇逃过了黄河。这些残兵败将们再也无法恢复原来的势力,从此便没有声息了。
这次官渡之战,曹操用极少的兵力战胜了拥兵数十万的袁绍,以弱小的力量战胜了强大的势力。曹军势力大增,乘胜追击,继续向袁绍占领的地区进军,不久就统一了北方,为以后出现三国鼎立的局面奠定了基础。