四月,曹操为争取主动,求得初战的胜利,亲自率兵北上解救白马之围。此时谋士荀攸认为袁绍兵多,建议声东击西,分散其兵力,先引兵至延津,伪装渡河攻袁绍后方,使袁绍分兵向西,然后遣轻骑迅速袭击进攻白马的袁军,攻其不备,定可击败颜良。曹操采纳了这一建议,袁绍果然分兵延津,令正在进攻白马的郭图、淳于琼率军向西,挺进延津。沮授劝阻袁绍道:“颜良的性格急促狭小,虽然骁勇,但不可以让他独自担任大将。”袁绍不从。
在郭图、淳于琼等人率军奔赴延津后,曹操乃乘机率领轻兵迅速袭击颜良。曹军以中郎将张辽、偏将军关羽为前锋,曹操亲率裨将军徐晃等人继其后。关羽望见了颜良麾盖(大将所乘戎车,设幢麾、张盖),在张辽军队与颜良军队交战之时,关羽策马冲到颜良身边,在万众之中刺死颜良,又拔出腰间佩刀斩其首级而归。袁军诸将都不能挡住关羽。袁军溃散。
曹操解了白马之围后,迁徙白马的百姓沿黄河向西撤退。袁绍率军渡河追击,军至延津南,派大将文丑与刘备继续率兵追击曹军,曹操当时的骑兵不足六百,驻于南阪(在白马南)下,而袁军达五六千骑,尚有步兵在后跟进。曹操令士卒解鞍放马,并故意将辎重丢弃道旁。袁军果然中计,纷纷争抢财物。曹操突然挥动着自己手中所持“麾”,下令发起攻击。徐晃等人翻身上马[15],终于击败袁军,杀了文丑(文丑为乱军所杀,并不是关羽斩杀),顺利退回官渡。颜良、文丑都是河北名将,却被一战而斩,袁绍军队的锐气被挫伤。
相持
袁军初战失利,但兵力、粮草、军货、财力仍然占据明显的优势。
后来,曹操回到官渡,沮授向袁绍说:“河北兵虽然人多势众但勇猛不如河南兵,河南的粮草、军货、财力都不如河北;河南利于速战速决,河北利于缓慢战斗。所以,我们应让两军缓慢相持,拖长战事。”沮授建议以持久缓进的战术来消耗曹军,但袁绍又不听从。
七月,进军阳武(今河南中牟北),准备南下进攻许都。八月,袁军主力接近官渡,依沙堆立营,东西宽约数十里,曹操也立营与袁军对峙,曹军“合战不利”。九月,曹军再度出击,与袁军交战不利,再次退回营垒,坚守。
袁绍构筑楼橹,堆土如山,用箭俯射曹营。曹军制作了一种抛石装置叫作霹雳车,发石击毁了袁军所筑的楼橹。袁军又掘地道进攻,曹军也在营内掘长堑相抵抗,粉碎了袁军的计策。双方相持三个月,曹操处境困难,前方兵少粮缺,士卒疲乏,后方也不稳固,曹操几乎失去坚守的信心,一日见运粮士兵疲于奔命,于心不忍,不禁脱口而出,“却十五日为汝破绍,不复劳汝矣!”曹操写信给荀彧,商议要退守许都,荀彧回信说:“袁绍将主力集结于官渡,想要与公决胜负。公以至弱当至强,若不能制,必为所乘,这是决定天下大势的关键所在。当年楚、汉在荥阳、成皋之间,刘邦、项羽没有人肯先退一步,以为先退则势屈。现在公以一当十,扼守要冲而使袁绍不能前进,已经半年了。情势已然明朗,绝无回旋的余地,不久就会发生重大的转变。这正是出奇制胜的时机,千万不可坐失。”于是曹操决心继续坚守待机,同时加强防守,命负责后勤补给的典农中郎将任峻采取十路纵队为一部,缩短运输队的前后距离,并用复阵(两列阵),加强护卫,防止袁军袭击;另一方面积极寻求和捕捉战机,击败袁军,不久派徐晃、史涣截击、烧毁袁军数千辆粮车,增加了袁军的补给困难。
期间,汝南郡黄巾军刘辟叛变,袁绍使刘备前往相助,又派韩荀钞断曹军西道,皆被曹仁击破[27]。江东孙策意欲偷袭许都,却被刺客暗杀。
奇袭
十月,曹操在与袁绍相持日久,百姓疲乏,多叛应袁绍,曹军缺乏粮食。袁绍又派车运粮,并令淳于琼率兵万人护送。沮授建议“另外派遣蒋奇率领支援军队行进在运粮军队的外表,以断绝曹军的抄掠”,但袁绍又不从。
淳于琼率领着没有外表援军的运粮军队夜宿于乌巢(今河南延津东南),距离袁军大营仅剩四十里的路程。恰在这时,袁绍谋士许攸投奔曹操,建议曹操轻兵奇袭乌巢,烧其辎重。曹操立即付诸实行,留曹洪、荀攸守营垒,亲自率领步骑五千,冒用袁军旗号,人衔枚马缚口,各带柴草一束,利用暗夜走小路偷袭乌巢。到达后立即围攻放火。袁绍获知曹操袭击乌巢后,一方面派轻骑救援,另一方面命令宁国中郎将张郃、大将高览率重兵猛攻曹军大营。可曹营坚固,攻打不下。当曹军急攻乌巢淳于琼营时,袁绍增援的部队已经迫近。曹操励士死战,大破袁军,曹军骁将乐进斩杀淳于琼等,并将其粮草全数烧毁。张郃、高览闻得乌巢被破,于是投降曹操,导致了军心动摇,内部分裂,大军崩溃。袁绍仓惶带八百骑兵退回河北,曹军先后歼灭和坑杀袁军七万余人,也有说是八万人。
官渡之战增强了曹操的实力,为曹操击溃袁绍,统一北方奠定了坚实的基础。北方仅有曹操和袁绍势力较大,此战击溃了袁绍,北方就无人能和曹操抗衡。
官渡之战后,曹军活捉了沮授。沮授一直深得曹操赏识,起初曹操赦免沮授并且厚待他,但最后沮授因想要回到袁绍阵营而被曹操杀害。
曹操在袁绍大营发现许县及军中的某些人员,曾写信向袁绍表态,他下令将信件全部焚毁,以示安抚反侧。
官渡之战后,袁绍仅八百骑逃回北方,后悔不用田丰之言,但逢纪诋毁田丰,结果田丰被袁绍杀害。冀州地区发生反袁的动乱,袁绍率军平定。
战役结果
官渡之战,经过一年多的对峙,至此以曹操的全面胜利而告结束。曹操以两万左右的兵力,出奇制胜,击破袁军十万。这个战例成为中国历史上以弱胜强,以少胜多的典型战例。曹操以其非凡的才智和勇气,写下了他军事生涯最辉煌的一页。建安七年(202年),袁绍因兵败忧郁而死,曹操乘机彻底击灭了袁氏军事集团,建安十二年(207年),曹操又征服乌桓,至此,战乱多时的北方实现了统一。
胜败原因
曹操在战事初期处于劣势,当中全赖三人为曹操扭转困局——荀彧、荀攸、许攸。虽然三人在官渡之战中都没有封赏的史书记载,但并不是所有的功勋都要立刻获得封赏。
1、曹操于黎阳与袁绍相持,本欲还兵再作打算,荀攸献计:“今兵少不敌,分其势乃可。公到延津,若将渡兵向其后者,绍必西应之,然后轻兵袭白马,掩其不备,颜良可擒也。”曹操依计行事,果然大破袁军,斩杀颜良。荀攸又在文丑追击曹操之时,献策辎重饵敌之计,曹操依计行事,果然大破袁军,斩杀文丑。又在粮食将尽之时,建议攻击轻敌的韩猛,劫军粮、烧辎重。
2、曹操曾经在交战之时想过放弃,写信给许都的荀彧。而荀彧却提醒了曹操:“在战争双方都疲惫不堪时,谁后退谁被动,谁放弃谁灭亡。战机就在这时出现。”最后帮助曹操寻回信心,继续坚持。
3、后来,适逢“攸家犯法,审配收系之,攸不得志,遂奔曹操”,于是,许攸投奔曹操。许攸透漏出乌巢为袁绍囤粮之地,应当速速烧掉袁绍军粮。曹操依计而行,深夜直奔乌巢,放火烧粮,最终,使袁绍不战自败。
曹操能接纳能人之言,取得最终的胜利,这全在于用人之道。荀攸、许攸皆是人才,献上计谋,有化险为夷之功;荀彧则具备长远的战略眼光,能够鼓励和帮助曹操在关键时期坚持战斗,这是更高层次的人才。由此观之,人才的妥善任用应该可说是“一计敌万人”。至于曹操,他是一个懂得运用人才的人才,能接纳他人之言,故袁绍兵多也不足为惧,正所谓兵不在多,在乎能否调遣。