袁绍率领大军向官渡进。夏侯惇出紧急书信,曹操于是率领七万大军前去迎战,留下荀彧守卫许都。袁绍出兵前,田丰从狱中上书劝谏说:“现在应该静守以等待时机,不可轻率地动大军,恐怕会有不利的后果。”然而,逢纪却诬陷田丰说:“主公兴仁义之师,田丰怎么能说出这种不吉利的话!”袁绍因此大怒,想要斩杀田丰,但被众官劝阻。袁绍愤恨地说:“等我打败了曹操,再来治他的罪!”于是催促军队进,旌旗遍野,刀剑如林。
军队行至阳武,袁绍下令安营扎寨。沮授建议说:“我军虽然人数众多,但勇猛不如敌军;敌军虽然精锐,但粮草不如我军。敌军缺粮,利在战决;我军有粮,应该缓慢防守。如果能拖延时间,敌军就会不战自败。”但袁绍却大怒说:“田丰动摇我军心,我回去后一定要杀了他。你怎么也敢这样说!”他命令左右将沮授锁禁在军中,等打败曹操后,与田丰一起治罪。
袁绍于是下令将大军七十万人,在东西南北周围安营扎寨,连绵九十多里。曹操的细作探知了这个情况,报告给官渡的曹军。曹军新到,听到这个消息都很害怕。曹操与众谋士商议对策。荀攸说:“袁绍军队虽然多,但不足为惧。我军都是精锐之士,可以以一当十。但利在战决,如果拖延时间,粮草不足,事情就堪忧了。”曹操说:“你的意见正合我意。”于是传令军将擂鼓呐喊前进。
袁绍军队前来迎战,两边排成阵势。审配拨给一万名弓弩手,埋伏在两翼;五千名弓箭手埋伏在门旗内,约定炮响齐。三通鼓罢后,袁绍身穿金盔金甲、锦袍玉带,立马在阵前。左右排列着张合、高览、韩猛、淳于琼等将领,旌旗节钺非常严整。
曹军阵上的门旗开处曹操出马。许褚、张辽、徐晃、李典等各自持着兵器前后拥卫。曹操用马鞭指着袁绍说:“我在天子面前保举你为大将军现在你为何谋反?”袁绍愤怒地说:“你托名汉相实为汉贼!罪恶滔天比王莽、董卓还要严重竟然反诬我造反!”曹操说:“我现在奉诏讨伐你!”袁绍说:“我奉衣带诏讨伐你这个贼!”
曹操大怒派张辽出战张合跃马来迎战。两位将领斗了四五十个回合不分胜负。曹操看了暗暗称奇。许褚挥刀纵马冲出去助战高览挺枪接住。四员将领捉对厮杀。曹操又命令夏侯惇、曹洪各自率领三千军马一起冲击敌阵。
审配见曹军来冲阵便命令放起号炮:两下万箭齐中军内的弓箭手也一起拥到阵前乱射。曹军抵挡不住向南逃走。袁绍指挥军队追击曹军大败全部退到官渡。
袁绍将大军移动到官渡附近扎营。审配建议说:“现在可以拨出十万兵力守住官渡在曹操营寨前筑起土山让士兵从山上向曹营放箭。如果曹操放弃这里离开我们占据这个隘口许昌就可以攻破了。”袁绍听从了他的建议在各个营寨内挑选精壮的士兵用铁锹和土担一起到曹操的营寨边垒土成山。
曹营内看到袁军堆筑土山想要冲出去冲突但被审配的弓箭手挡住了去路无法前进。十天之内袁军筑成了五十多座土山高高的橹楼上分拨了弓箭手向曹营射箭。曹军非常害怕都顶着遮箭牌来防守。当土山上传来一声梆子响时箭如雨下。曹军都举着盾牌趴在地上袁军则呐喊欢笑。
曹操看到军队慌乱就召集众谋士商议对策。刘晔建议说:“可以制造石车来攻破敌军的土山。”曹操命令刘晔制造了石车的样式连夜赶造了数百辆石车分布在营墙内正对着土山上的云梯。当敌军弓箭手射箭时曹营内就一起拉动石车射石弹飞上天空向敌军乱打乱砸敌人无处躲避弓箭手被打死无数。袁军将这种车称为“霹雳车”从此袁军不敢再登高射箭了。
审配又献上一计:命令士兵用铁锹暗中挖掘地道直通到曹营内部称为“掘子军”。曹兵看到袁军在山后挖掘土坑就报告给曹操。
曹操又问计于刘晔,刘晔说:“这是袁军不能从明处攻击而转攻暗处,挖掘地道,想从地下透入我军营中。”曹操问:“怎么防御他们呢?”刘晔说:“可以围绕军营挖掘长沟,那么他们的地道就没有用了。”曹操连夜派军队挖掘长沟。袁军挖掘地道到沟边,果然不能进入,白费了许多军力。
此时,曹操驻守官渡,从八月开始,到九月底,军力逐渐疲乏,粮草也不继。他有意放弃官渡退回许昌,但又迟疑不决,于是写信派人去许昌问荀彧。荀彧回信给他。信中说:“我接到你的命令,要我决定进退的疑虑。我认为袁绍全部兵力聚集在官渡,想与你决一胜负,你以最弱的兵力对抗最强的兵力,如果不能制服他,必被他所乘:这是天下的大机遇。袁绍的军队虽然众多,但不会用兵;以你的神武明哲,哪里会不成功!现在虽然军事实力较少,但还没有像楚、汉在荥阳、成皋间那样危急。你现在划定地界而防守,扼住他的喉咙使他不能前进,情势已经很明显,他必将有变化。这是用奇兵的时候,千万不可失去机会。请你明察。”
曹操接到信后非常高兴,命令将士们奋力死守。袁绍的军队大约后退了三十多里,曹操派遣将领出营巡逻侦察。有徐晃的部将史涣捉到了袁绍的细作,押解来见徐晃。徐晃问他们军中的虚实情况,细作回答说:“早晚大将韩猛会运粮到军前接济,先派我们来探路。”徐晃便将此事报告给曹操。荀攸说:“韩猛只有匹夫之勇。如果派一人带领轻骑兵数千人,从半路上袭击他,切断他的粮草,袁绍的军队就会自乱。”曹操问:“谁可以前往?”荀攸说:“立即派徐晃去就可以。”曹操于是派遣徐晃带领史涣和他的部队先出,后面派张辽、许褚带兵接应。
当夜,韩猛押送着数千辆粮车,前往袁绍的营寨。正在行进之间,山谷内徐晃、史涣引军截住了去路。韩猛飞马来战,徐晃接住厮杀。史涣便杀散运粮的人夫,放火焚烧粮车。韩猛抵挡不住,拨回马逃走,徐晃催军烧尽了袁绍的辎重。袁绍军中望见西北方向火起,正在惊疑之间,败军来报:“粮草被劫!”袁绍急忙派遣张合、高览去截大路,正遇上徐晃烧完粮草回来。双方正要交锋时,背后张辽、许褚的军队到了。两下夹攻打败了袁军四将合兵一处回到了官渡寨中。曹操非常高兴重重地奖赏了他们。他又分军在寨前结营成为掎角之势。
韩猛败军回到营中袁绍大怒要斩韩猛众官劝止。审配说:“行军以粮食为重不可不用心提防。乌巢是屯粮的地方必须派重兵把守。”袁绍说:“我的计划已经定下了。你可以回邺都监督粮草不要让它缺乏。”审配领命而去。袁绍派遣大将淳于琼带领督将眭元进、韩莒子、吕威璜、赵睿等人引领二万人马守乌巢。那淳于琼性格刚烈喜欢喝酒军士多畏惧他。他到达乌巢后整天与诸将聚饮。
曹操的军粮快要用尽了他急忙使者前往许昌让荀彧赶快筹措粮草连夜解送到军前接济。使者带着书信前往走了不到三十里被袁军捉住绑着去见谋士许攸。那许攸字子远年轻时曾与曹操为友此时却在袁绍处为谋士。他当下搜出使者所带的曹操催粮书信直接来见袁绍说:“曹操驻军官渡与我相持已久许昌必定空虚。如果分出一支军队连夜偷袭许昌那么许昌就可以被攻下而曹操也可以被擒获。现在曹操的粮草已经用尽正是可以乘此机会两路攻击他。”袁绍说:“曹操诡计极多这封信是诱敌之计。”许攸说:“现在如果不取将来反而会受其害。”正说话间忽然有使者从邺郡来呈上审配的书信。信中先说了运粮的事情后面又说许攸在冀州时曾经滥受民间财物并且纵容子侄辈多收税钱粮入自己口袋现在已经把他的子侄收押下狱了。
袁绍看到书信后大怒说:“你这个滥行匹夫!还有脸在我面前献计吗!你与曹操有旧交,想必现在也收了他的贿赂,为他做奸细,来骗我军吗!本应斩,但今天暂且寄下你的头颅!快滚出去,以后不许相见!”许攸出帐,仰天叹息道:“忠言逆耳,这小子不足与谋!我的子侄已经遭到审配的杀害,我还有什么脸面再见冀州的人呢!”于是想要拔剑自刎。左右的人夺下剑来劝他说:“您何必轻生到这个地步?袁绍不采纳您的直言,将来必定会被曹操所擒。您既然与曹公有旧交,为何不弃暗投明?”这两句话点醒了许攸,于是许攸直接去投奔曹操。后人有诗叹道:“本初豪气盖中华,官渡相持枉叹嗟。若使许攸谋见用,山河争得属曹家?”
许攸暗中步出袁绍营帐,直奔曹寨而来,被巡逻的士兵拿住。他说:“我是曹丞相的故友,快给我通报,说南阳许攸来见。”士兵急忙报入寨中。当时曹操刚脱下衣服准备休息,听说许攸私自投奔到寨中,大喜过望,来不及穿鞋,光着脚就出来迎接。远远看见许攸,他拍着手大笑,携手共入帐中,曹操先拜倒在地。许攸慌忙扶起他说:“您是汉相,我只是个平民,何必如此谦恭?”曹操说:“您是我的故友,哪里敢以名爵来分上下呢!”许攸说:“我不能选择好的主子,只能屈身于袁绍,但他言不听,计不从,所以今天特地来投奔故人。希望您能收留我。”曹操说:“子远肯来,我的大事就成了!希望您即刻教我破袁绍的计策。”许攸说:“我曾建议袁绍派轻骑乘虚袭击许都,尾相攻。”曹操大惊说:“如果袁绍听了你的话,我的事情就败露了。”许攸说:“您现在军粮还有多少?”曹操说:“可以支持一年。”许攸笑着说:“恐怕未必。”曹操说:“有半年。”许攸拂袖而起,快步走出帐外说:“我诚心诚意来投奔你,你却这样欺骗我,这哪里是我所期望的呢!”曹操挽留说:“子远别生气,请让我实说,军中的粮食其实只够支持三个月了。”许攸笑着说:“世人都说孟德是奸雄,现在看来果然如此。”曹操也笑着说:“岂不闻‘兵不厌诈’!”于是附耳低语说:“军中的粮食其实只够这个月的了。”许攸大声说:“别瞒我了!粮食已经用完了!”曹操惊愕地问:“你怎么知道?”许攸就拿出曹操给荀彧的信给他看,并问:“这封信是谁写的?”曹操惊讶地问:“你在哪里得到的?”许攸就把截获使者的事情告诉了他。曹操握着他的手说:“子远既然念及旧交而来,希望即刻教我破敌之策。”许攸说:“您以孤军对抗大敌,却不求胜的办法,这是自取死路。我有一计,不过三天,就能让袁绍的百万大军不战自破。您还愿意听吗?”曹操高兴地说:“请说你的妙计。”许攸说:“袁绍的军粮辎重都堆积在乌巢,现在派淳于琼把守,但他嗜酒无备。您可选精兵,假装是袁绍的将领蒋奇领兵到那里护粮,乘机烧掉他们的粮草辎重,那么袁绍的军队不出三天就会自乱。”曹操大喜,重赏许攸,并留他在寨中。
第二天,曹操亲自挑选了五千马步军士,准备前往乌巢劫粮。张辽说:“袁绍屯粮的地方,怎么可能没有防备?丞相不可轻率前往,恐怕许攸有诈。”曹操说:“不对。许攸此来,是天要败袁绍。现在我军粮草不足,难以持久,如果不用许攸的计策,那就是坐以待毙。他如果有诈,怎么会肯留在我们的寨中?而且我也想劫寨很久了。今天劫粮的行动,势在必行,你不要再怀疑了。”张辽说:“也要防备袁绍乘虚来袭。”曹操笑着说:“我已经考虑得很周到了。”于是让荀攸、贾诩、曹洪同许攸一起守大寨,夏侯惇、夏侯渊领一军埋伏在左边,曹仁、李典领一军埋伏在右边,以备不测。让张辽、许褚在前,徐晃、于禁在后,曹操亲自率领诸将居中,共五千人马,打着袁军的旗号,军士们都束草负薪,人口衔枚,马勒口,黄昏时分,向乌巢进。那一夜星光满天。
沮授被袁绍拘禁在军中,这天夜里,因为看到星星排列清晰,他请求监守者带他到中庭,仰观天象。忽然,他看见金星逆行,侵犯了牛宿和斗宿的区域,大惊说:“大祸将要临头了!”于是,他连夜请求见袁绍。当时袁绍已经醉卧,听说沮授有密事要报告,便叫人把他带进来。沮授说:“我刚才观察天象,看见金星在柳宿和鬼宿之间逆行,它的光芒射入了牛宿和斗宿的区域,恐怕会有贼兵劫掠的灾害。乌巢是屯粮的地方,不能不加强防备。应该尽快派遣精兵猛将,在山路间道进行巡逻,以免被曹操算计。”袁绍大怒,斥责说:“你是得罪了我的人,怎么敢胡说八道,迷惑大家!”他又对监守者说:“我叫你拘禁他,你怎么敢放他出来!”于是命令斩了监守者,另外叫人监押沮授。沮授出去后,掩泪叹息道:“我军灭亡就在旦夕之间,我的尸骸不知道会落在什么地方啊!”后人有诗叹息道:“逆耳的忠言反而被仇视,独断专行的袁绍缺少机智和谋略。乌巢的粮食被烧尽,根基被拔除,他却还想着死守冀州。”
曹操领兵在夜间行进,经过袁绍的别寨时,寨兵问是哪里的军队。曹操派人回答说:“是蒋奇奉命前往乌巢护粮。”袁军看到是自己家的旗号,就没有怀疑。他们过了几处地方,都假称是蒋奇的军队,没有遇到阻碍。等他们到达乌巢时,已经是四更天了。曹操命令军士在周围堆起柴草放火,众将领鼓噪着直接冲入。当时淳于琼正与众将饮酒,醉卧在帐篷中,听到鼓噪声,连忙跳起来问:“为什么喧闹?”话还没说完,就被挠钩拖翻了。眭元进、赵睿运粮刚回来,看见营屯上火起,急忙赶来救援。曹军飞快报告曹操说:“贼兵在后面追来了,请分兵抵挡他们。”曹操大声说:“众将只顾奋力向前,等贼兵到了背后,再回头战斗!”于是众军将领无不争先杀敌。一时间,火焰四起,烟雾弥漫天空。眭元进、赵睿二将驱兵来救淳于琼,曹操勒住马与他们回战。二将抵挡不住曹军的攻击,都被曹军所杀,粮草全部被烧光。淳于琼被擒后见到曹操,曹操命令割去他的耳朵、鼻子和手指,然后绑在马上放回袁绍的营中羞辱他。
袁绍在帐篷中听到报告说正北方向火光冲天,知道是乌巢失守了。他急忙走出帐篷召集文武官员商议派兵去救援。张合说:“我和高览一起去救援吧。”但郭图说:“不行。曹军劫粮草去了,曹操肯定亲自前往指挥作战。曹操既然亲自出征那么他的大营一定空虚我们可以派兵先攻打曹操的大营。曹操听到这个消息后一定会迅回援。这就是孙膑的‘围魏救赵’之计啊。”然而张合却认为:“曹操足智多谋他外出时一定会做好内部的防备工作以防不测。如果我们现在攻打他的营寨而不能攻下等到淳于琼等人被俘虏了我们这些人就都会被擒获了。”但郭图还是坚持说:“曹操只顾着劫粮草怎么会留下兵力在营寨里呢?”他再三请求袁绍派兵攻打曹营。于是袁绍派遣张合、高览带领五千兵马前往官渡攻打曹营又派遣蒋奇带领一万兵马去救援乌巢。
曹操打散了淳于琼的部卒后夺取了他们的全部衣甲和旗帜伪装成淳于琼的部下败军回寨。他们走到一条偏僻的山路上时正好遇到了蒋奇的军队。蒋奇的军队问他们是哪里的兵马他们谎称是乌巢的败军逃回来的。蒋奇信以为真没有怀疑就让他们过去了。然而就在这时张辽、许褚突然冲出来大喊:“蒋奇别跑!”蒋奇措手不及被张辽斩于马下他的军队也被全部消灭。接着曹操又派人冒充蒋奇的士兵抢先回去报告说:“蒋奇已经自杀并击散了乌巢的敌军。”袁绍听到这个消息后就不再派人去救援乌巢了只增派兵力前往官渡。
张合、高览攻打曹营时,遭遇了夏侯惇、曹仁、曹洪的强烈反击,袁军大败。等到接应军队赶到,曹操又从背后动攻击,四下围攻,张合、高览只能奋力突围逃脱。袁绍收拢了乌巢败残的军马回到营寨,看到淳于琼耳鼻皆无,手足尽落,愤怒之下立即将他斩。当得知乌巢失守的原因后,袁绍更是大怒。
郭图担心张合、高览回到营寨后会揭露真相,于是在袁绍面前诬陷他们二人早有投降曹操之意。袁绍听信谗言,大怒之下急召二人回营问罪。郭图又派人提前告知二人袁绍的意图,让他们有所准备。当袁绍的使者到来时,高览果断拔剑斩杀使者,张合也大惊失色。高览表示袁绍听信谗言,必定会被曹操所擒,他们不能坐以待毙,于是二人决定投降曹操。
夏侯惇对张合、高览的投降表示怀疑,但曹操却认为应该以恩义相待,即使他们有异心也可以感化。于是曹操打开营门迎接二人,并封他们为将军。二人大喜过望,从此成为曹操的得力干将。
袁绍失去了许攸、张合、高览等重要谋士和将领的支持,又失去了乌巢的粮草供应,军心开始动摇。而曹操则乘胜追击,采用荀攸的计策分兵两路进攻袁绍的营寨。袁绍大惊之下急忙分兵迎战但已经为时已晚。曹军八路齐出直冲绍营袁军溃不成军四散奔逃。袁绍来不及穿戴盔甲只带着幼子袁尚和八百余名骑兵仓皇逃过河去。曹操的军队一路追杀斩获了大量的战利品和俘虏。
在清理战利品时曹操现了许多许都及军中将士与袁绍暗通的书信。有人建议曹操按名单逐一查处并将这些人全部处死。但曹操却认为在袁绍强大的时候他自己都不能自保更何况别人呢?于是他下令将这些书信全部焚毁不再追究此事。
袁绍兵败逃亡的过程中沮授因为被囚禁而无法逃脱最终被曹军俘获。曹操一直很欣赏沮授的才华和忠诚他亲自劝降沮授但遭到了坚决的拒绝。曹操虽然感到遗憾但仍然厚待沮授并将他留在军中。然而沮授却趁机在营中盗马试图逃回袁绍那里。曹操得知后愤怒之下将沮授处死。沮授至死都保持着忠诚和坚定的神色让曹操深感惋惜。他下令厚葬沮授并在黄河渡口建立坟墓纪念这位忠烈之士。
随后曹操下令进攻冀州开始了对袁绍势力的最后清算。