从公元190年开始,经过十年的战争,绝大多数首领渐渐退出政治舞台,杨奉被灭,吕布已死,袁术身亡,张绣投降,孙策据守江东,刘备尚未出头,逐鹿中原的就只剩下曹操和袁绍了。袁绍据有冀州、青州、并州、幽州四州;曹操则掌控西到关中,东到兖州、豫州、徐州,黄河以南、淮汉以北的大部分地区。两股势力在黄河下游隔河南北对峙。一山难容二虎,曹操、袁绍一决雌雄势在必行,挑头的人是不可一世的袁绍。
建安四年(199年)六月,袁绍选精锐之兵10万,马万匹,率军南进。八月,曹操进驻黎阳(今河南浚县东北),派遣青州豪族臧霸率部从徐州入青州,严守东线,又派于禁屯驻黄河南岸,分兵守官渡(今河南中牟东北),与袁绍隔河对峙。另派卫觊镇抚关中,又一次取得关中诸将的服从。袁绍帐下谋士沮授不同意袁绍与曹操仓促交战,他说:“近来讨伐公孙瓒,连年出兵,百姓已疲惫不堪,仓库中又没有积蓄,不宜此时出兵。应该让老百姓搞好农业生产,休养生息。同时,遣使者把征讨公孙瓒的消息上报天子,如果上表受阻,就说明曹操隔断我们与朝廷的联系,然后进兵黎阳,逐渐向黄河以南发展势力。多造战船,修缮器械,分遣精骑就可骚扰曹操的边境,使他不得安宁,而我军则以逸待劳,这样可以稳得天下。”郭图、审配却主张与曹操决战,他们说:“以您用兵之神武,统率北方强兵,征讨曹操,轻而易举,何必那样费事!”袁绍不听沮授等人的劝阻,采纳了郭图、审配等人的建议,将军队分为三部分,派沮授、郭图、淳于琼各统一军。
曹操早就预料到与袁绍必有一战。建安二年(197年),他曾打算讨伐袁绍,但因为当时实力不强,只好作罢。
曹操和袁绍自小就有往来,知彼知己,曹操有信心战胜袁绍。在听得袁绍率领大军十余万即将攻打许都的消息后,曹操手下诸将都认为打不过袁绍。但曹操却说:“我知道袁绍的为人,志大而智小,色厉而胆薄,忌克而少威,兵多而分划不明,将骄而政令不一;土地虽然广阔,粮食虽然充足,却都是给我准备的。”荀彧和郭嘉都是三国时期有名的谋士,两人都先辅佐袁绍后投靠曹操,对曹、袁都有比较深刻的了解。“袁绍虽然强大,却不会有什么作为。绍礼仪烦琐,公待人顺其自然,这是在处世之道上胜过他。绍出兵叛经离道,公却尊奉天子,顺应天下民心,这是在道义上胜过他。绍以宽济宽,因此松松垮垮,公却厉行法治,使上下守法,这是在治理上胜过他。绍外表宽厚而内心疑忌,用人好起疑心,只信任亲戚子弟;而公用人不疑,唯才是用,不问远近亲疏,这是在气度上胜过他。绍计谋虽多而决断少,常失掉良机,公制定政策立即执行,可以应付各种变化,这是在谋略上胜过他。绍喜高谈礼仪,沽名钓誉,公诚心待人,不虚情假意,正直有远见,这是在品德上胜过他。绍过于计较小事,而公对小事,有时忽略,但对于大事,却考虑得十分周全,这是在仁义上胜过他。绍手下的大臣争权夺利、互相倾轧,公却管理有方,谗言诽谤行不通,这是在明智上胜过他。绍黑白不分,公对正确的鼓励,对错误的正之以法,这是在文治上胜过他。绍喜欢虚张声势,不知道兵法的要领,公却能以少克众,用兵如神,这是在武力上胜过他。”
名士孔融对战胜袁绍缺乏信心,他说:“袁绍地广兵强,有田丰、许攸这样的智士为他出谋划策,有审配、逢纪这样的忠臣为他奔走效劳,有颜良、文丑这样的勇将为他统率兵马,恐怕难以战胜袁绍吧?”荀彧说:“袁绍兵将虽多但法令不严,田丰刚直但经常冒犯上司,许攸贪婪而不会处世,审配专权而缺少谋略,逢纪果断但刚愎自用。这几个人彼此不能相容,势必内部要发生内讧,至于颜良、文丑只不过是匹夫之勇罢了,一战就可以把他们擒获。”
九月,曹操分兵把守官渡,准备与袁军交战。袁绍企图联合张绣和刘表共同夹击曹操,遂派使者到穰城联络张绣,还有意给张绣的谋士贾诩捎信结好。张绣准备答应,还没有说话,贾诩在一旁就开口了,他说:“请回去转告袁绍,兄弟都不能相容,怎么能容得下天下的国士呢?”使者只得怏怏而回。不久,张绣率众投降曹操。袁绍又派人至刘表那里请求援助,刘表很爽快地答应了,实际上却按兵不动,对袁曹之间的争斗只打算作壁上观。张、刘的态度使袁绍迟迟不敢动手。这时凉州牧韦端的从事杨阜从许昌返回关中,众将领问他袁绍与曹操哪个能胜,杨阜说:“袁绍宽容但不果断,喜欢谋略而犹豫不决,不果断就没有威信,迟疑不决就错过良好的时机,虽然目前强大,但最终不能成就大业。曹操有雄才大略,遇事当机立断,毫不犹豫,法令统一,士兵精悍,任人唯贤,受他聘用的都各尽其力,一定能成就大业。”
曹操知道关中地位重要,派诏书侍御史卫觊到那里去镇守安抚。当时有很多逃亡在外的百姓返回关中,将领们纷纷将他们收做私兵。卫觊知道这一消息,给荀彧写信说:“关中土地肥沃,从前遭饥荒战乱,有十万余家百姓流亡到荆州,现在听说故乡安定了,都渴望归乡,但归乡后无法谋生,军事将领们都纷纷招揽他们做私兵。郡县由于贫弱,无法与他们抗衡,将领们的势力大大增强,一旦发生变乱,必然后患无穷。我的意见是,把过去分散到民间的盐务管起来,设使者监督买卖,用此项收入多买犁与耕牛。如果有百姓返回故乡,就借给他们耕牛,鼓励他们耕种,积攒粮食,使关中逐渐繁荣昌盛。流亡到外地的百姓听此消息后,定然争着返回故乡。这样可以使军事将领的力量削弱,官府和百姓可以强盛。这是削弱敌人,强大自己的最好方法。”荀彧把卫觊的建议说给曹操听,曹操同意这样做。从此关中地区受到朝廷的控制,对曹操不再构成威胁。
为了避免与袁绍决战时分散精力,曹操还出兵打败了刘备,将刘备的妻子俘虏,关羽也被抓。原来,刘备起兵之后一直没有稳固的地盘,他先后依附陶谦、吕布,建安三年(198年)又依附曹操。建安四年(199年),朝廷中以献帝丈人车骑将军董承为首的一些人秘密谋划推翻曹操,刘备也参与其中。不久曹操发现了董承的企图,及时行动,董承被杀。刘备逃至下邳,打起了反曹的旗号。曹操为了消除后患,出兵打败刘备,占领了下邳,刘备逃奔青州,归附了袁绍。
曹操东征刘备,许都空虚,正是袁绍对曹操发动进攻的良机。袁绍的谋士田丰向他建议:“与您争夺天下的人是曹操。曹操现在攻打刘备许都空虚,我军如能大举进军,定可获胜。要抓住战机进兵许都。”袁绍没有采纳田丰的建议,却推辞说儿子病了,无心出征。袁绍在曹操、刘备交战时坐失良机,在曹操回师官渡之时,他却又坚决出兵了。
建安五年(200年)正月,袁绍向各州郡发布了征讨曹操的檄文。此文出自陈琳之手,文字尖酸刻薄,说曹操是“赘阉遗丑”,“好乱乐祸”。袁绍与部将商议进攻曹操,谋士田丰说:“曹操现在打败了刘备,许昌已不再空虚,而且他又善于用兵,军队虽少却不可轻视。现在不如采用持久战,将军在地理上占有优势,拥有众多兵将,外结英雄,内修农战,然后再挑选精兵,出其不意袭击曹军,使他们疲于奔命,百姓不得安宁,他们疲惫不堪,而我们不辛劳,不用三年,我们就可稳操胜券。您现在放弃必胜之策,贸然与曹操交战,如不能如愿,后悔也来不及了。”袁绍不但不听从田丰的建议,还认为田丰的劝谏冒犯了他,因此大怒,将田丰关押起来,由此也大大挫伤了军队士气。
建安五年(200年)二月,袁绍率军攻进黎阳(今河南浚县东北)。他得知曹操派东郡太守刘延驻守白马(今河南滑县东),于是派大将颜良率领大军渡过黄河,企图攻占白马,扫清南下的障碍。刘延在白马坚守,颜良来势汹汹,守城士兵伤亡很多。曹操在官渡听此消息,想出兵北援刘延,军师荀攸向曹操献计说:“现今我们兵马不足,不能与袁绍正面交战,必须分散敌人的力量才能将其打败。如果您率军向延津做出要渡黄河抄袁绍后路的姿态,袁绍一定会分兵向西来阻截,然后我们再派轻兵突然袭击白马,乘其不备攻打,一定可将颜良擒获。”曹操采纳荀攸的建议,亲自领兵向延津进军。袁绍听说曹操要渡河,立即派部将文丑率兵增援,袁绍则亲自率领大军在朝歌(今河南淇县)驻扎,准备对曹操进行正面攻击。曹操立刻分兵向白马急速进军,离白马只有十几里地时,颜良才发觉,慌忙应战。曹操派关羽、张辽前去应战。关羽英勇善战,远近闻名,曹操将其俘获后一直想收服他,但关羽没有久留的意思。张辽问起原因,关羽说:“云长深知曹公待我不薄,但我受刘将军的恩情,誓与他共生死,不能背叛他。我虽不能留下,但要找机会立功以报曹公的恩情,然后离去。”此次曹操派关羽解白马之围,正是关羽立功的机会。关羽精神抖擞,策马冲杀,将颜良斩杀于万军之中。袁军顿时大乱,纷纷溃败,白马之围遂解。
曹操解除白马之围后,让当地百姓跟随军队向西南迁移,袁绍倚仗自己人多势众,准备挥师渡河,追击曹军。因为屡谏而被嫌弃的沮授,这时又劝阻袁绍说:“战争胜负变幻莫测,一定要有周密的计划。应当派文丑留屯延津,另分一支兵力进攻官渡。如果能够攻克,再迎接大军也不迟,否则就会导致全军覆没。”袁绍不听从他的意见。沮授在大军即将渡河的时候叹息道:“首领骄傲轻敌,将士们贪恋功名,悠悠黄河,我们还能再回到这里吗?”他推托身体有病,不愿过河。袁绍非常气愤,强迫沮授随军渡河,并把他的军队划归郭图。
袁绍率军到达延津以南后,命令文丑为前锋,向曹军发动进攻。曹操则在酸枣以北的南阪下安营扎寨,他派人登高观察袁军的动静,瞭望哨向曹操报告说:“已发现袁军骑兵五六百人!”过一会儿又报告说:“骑兵增至一千余人,步兵不计其数!”曹操镇定地说:“不用再报告了。”接着,他命骑兵卸鞍放马,把辎重车辆堆放在道路两旁。许多将领说,敌人骑兵多,不如将辎重车运回,守卫大营。只有荀攸明白曹操的用意,他对将领们说:“这是用来引诱敌军的,怎么能运回呢?”曹操笑着说:“知我者,荀攸也。”
这时文丑与刘备率领的五六千骑兵先后赶到。众将领感到情况紧急,急催曹操下令迎战。曹操却从容不迫地说:“还不到时候。”又过了一会儿,袁绍的骑兵越来越多,当他们看见曹军的军用物资堆满路边,便争先恐后地抢夺,乱成一团。这正好中了曹操计谋,他纵身上马,当即传令:“出击!”部将率领士兵冲入敌阵,袁军大败,文丑在混战中被杀。袁军溃逃后,曹军追出三十多里,杀数千人,并收回了全部辎重。文丑与颜良是袁绍手下的名将,他们二人遭斩杀,使袁军的士气大挫。白马与延津南之役,为曹操取得官渡决战的胜利奠定了基础。
延津南之战,曹操利用了袁绍军队贪婪无纪律的弱点,采用了以白马辎重诱敌的计策。袁绍骑兵虽多,但到了“分取辎重”之时,已经乱了阵脚,成为一群乌合之众,不堪一击了。
打了白马、延津南两个战役之后,曹操不慌不忙地把军队撤退到官渡。与袁绍在官渡决战,曹操是已有计划的。撤军到官渡,这是一个主动的战略撤退。
官渡位于中牟县北,在古官渡水的南岸。这里比延津更靠近许都。因为曹操缩短了防线,也就缩短了补给线。而对袁绍来讲则是深入敌境,分散了兵力,延长了补给线。曹操选择在官渡与袁绍决战对自己是有利的。
建安五年(200年)四月,曹操将军队撤回官渡严阵对峙。袁军则进至官渡北面的阳武(今河南原阳东南),与曹军隔水对峙。沮授又向袁绍建议:“北边军队虽多,但不如南边强劲果敢,南边军粮少,军资也不如北边,速战对南边的军队有利,持久对北边的军队有利。应用持久战的办法耗费曹军的实力,不应仓促和曹军决战。”对沮授打持久战的建议袁绍置若罔闻。八月,袁军自阳武连营进军官渡,大军依沙堆为屯,东西数十里。曹军亦如此。从八月到十月,袁、曹两军在官渡相持了两三个月。由于袁军兵多势强,曹军兵少势弱,曹军的形势是非常危急的。在这期间,曹操的后方又出了问题。先是汝南黄巾首领刘辟等背叛曹操,响应袁绍。袁绍见有机可乘,派刘备率兵援助刘辟。一时间,周围郡县纷纷响应。袁绍还派人拉拢阳安都尉李通,授予他征南将军的职位,率军反对曹操。李通坚决不从,他手按剑柄责问来人说:“曹公明智,必然能赢得天下。袁绍虽然此时强盛,终将被曹操打败!我宁可死也不变心!”一怒之下李通杀了使者,把袁绍送来的印绶交给了曹操。
袁绍也曾经试图分兵袭击曹操的后方。他曾经派刘备到汝南地区协助当地的地方势力,骚扰许南。这最初确实也给曹操后方构成了一定的威胁,使得许都以南吏民不安。刘备新降袁绍,未能得其重用。曹操派曹仁的兵马出击,把刘备打退,尽复诸县。袁绍又遣韩荀抄断西道,为曹仁所击破。从此袁绍就再不敢分兵出击了。
回到袁绍军中的刘备,暗中准备离开袁绍。于是,他劝说袁绍与刘表联合,并且愿意前往游说,袁绍同意了,于是,刘备带着他原来的部队到达汝南,与当地首领龚都联合,部众共有千余人。曹操派部将蔡扬前往进攻,被刘备杀死。
九月,曹操出兵与袁绍交战,被袁绍击败,又退回大营坚守。袁绍见曹军不出来迎战,便命士兵在曹操军营外修建高台,堆起土山,向曹操的营地放箭,曹营将士行走都要用盾牌遮挡。曹操这时也采取相应措施,他派人快速制造了一种霹雳发石车,攻击力很强,将袁军的壁楼全都击毁。袁绍挖地道攻击曹操,曹操则命士兵在营里面挖长沟截断袁军地道。虽然袁绍的进攻没捞到什么好处,但是曹操兵少,粮食将尽,士卒疲惫不堪,老百姓也无法忍受繁重的赋役,纷纷逃亡,归附袁绍,形势对曹操来说十分严峻。曹操很担心,准备退回许都。他写信给荀彧征求意见。荀彧回信说:“袁绍的兵马全部聚集在官渡,要与您决一胜负,您以弱小的军队来抵抗强大的军队,如果无法战胜敌人,就会溃不成军。再说,袁绍只不过是布衣之雄,能够把人聚集起来却不能很好地利用。凭借您的神武英明,再加上顺应天命,一切困难都会迎刃而解的。您只以袁绍十分之一的兵力,就牵制了袁军,使他无法前进,只要再过半年,事情就要发生变化了,这正是取胜的良机,可要把握住呀!”荀彧的信给了曹操很大鼓舞。曹操一方面命令部队坚守官渡,不丢城池;另一方面采取有效措施解决军粮补给问题。他对运粮的士兵说:“再过半个月,我为你们打败袁绍,你们就不再辛苦了。”
九月间,袁绍有几千辆运粮车到官渡,荀攸对曹操说:袁绍运粮车日暮而至,押运粮草的韩猛勇猛而轻敌,我军应派人袭击他,一定会打败他。曹操听取荀攸的建议,派徐晃、史涣在路上截击韩猛,将其击破,并且烧了粮草。十月,袁绍又派遣军队运粮供应前线的部队,使部将淳于琼等率领部队万余人护送,停宿于营北四十里的乌巢。袁绍谋臣许攸与审配不和,许攸在邺城的家族犯法被审配治罪。许攸投奔曹操,将袁绍辎重屯集在乌巢、袁军防守不严的情况告诉曹操,并建议曹操乘着夜幕前去袭击。曹操采纳许攸的建议,决定由曹洪、荀攸留守,自己亲自率兵夜袭乌巢袁军粮草。曹操亲率五千精兵,打着袁军旗帜,命士兵将马嘴绑上,连夜从小道向乌巢进发,每个士兵怀中都抱着一捆干草。路上,遇着袁军盘问,就说“袁公担心曹操袭击我方后路,特派我们前去乌巢严加防守”。袁军听后信以为真。曹军到达屯粮处,迅速点燃干草,顿时火光冲天,袁营大乱。天亮之后,淳于琼看见曹操兵少,便开门出击,被曹军击败后又入营自守,曹操一时间攻打不下来。
淳于琼被曹军袭击的消息传到袁绍那里,袁绍并没有派兵增援淳于琼,反而认为正是攻下官渡的良机,他对儿子袁谭说:“趁曹操攻打淳于琼这一不可多得的机会,我领兵攻下曹操的大营,让他没有归路。”于是命令大将高览、张郃等向官渡进军。张郃说:“曹操率精兵去攻打淳于琼,必定会胜,淳于琼一败,事情可就不好办了,请让我去援救他吧。”谋士郭图支持袁绍攻打官渡。张郃说:“曹操的营垒坚固,不容易攻克,如果淳于琼被捉,我们就都成俘虏了!”袁绍想了一下,只派出很少的军队去营救淳于琼,仍派遣主力部队攻打曹营。
袁军的骑兵到达乌巢,曹操的部将们说:“敌人的骑兵逐渐靠近我们,请派兵攻打他们。”曹操说:“等敌人到了背后再告诉我!”士卒拼死力战,终于打退了袁军,又斩杀了淳于琼,乌巢积存的粮食全被烧毁,而袁军的主力也没能攻克曹操大营。袁军战败的消息传来,袁军将士非常惊慌。郭图见自己的计谋失算,心里忌恨张郃,反过来诋毁张郃,说张郃“听得军败很高兴”。张郃气愤之下与高览焚烧攻具,投奔曹操去了。
至此,袁军溃败的局面已无法挽回。听得淳于琼被杀,张郃、高览降曹营的消息,军心动摇,曹操乘机发动全面进攻,将袁军彻底击溃。袁绍和儿子袁谭只带八百士兵逃回河北,官渡之战结束。在这次大战中,曹操消灭袁军主力七万多人,并且缴获了袁军丢弃的大量辎重、图书、珍宝等。
曹操活捉了袁绍的谋士沮授。曹操与沮授原是好友,曹操想收留他,对他说:“袁绍是个没有谋略的人,不采用你的计策,现在天下动乱不安,我们正好同谋大业。”沮授说:“我的叔父与弟弟的性命都掌握在袁绍手中,您如果看得起我,就将我杀掉,这也是我的福分。”曹操叹息道:“我如果早点得到你,天下大事就不用担忧了。”曹操赦免沮授,并厚待他。不久,沮授企图逃回袁绍军中,曹操只好杀掉他。
袁绍逃至黄河北岸的黎阳,进入部将蒋义渠的军营,紧握着他的手说:“现在我的性命就托付给你了。”蒋义渠退出大帐,让袁绍发号施令,袁军残部渐渐聚拢起来。
谋士田丰当初因劝谏袁绍而被押进大狱,袁绍失败后,有人对他说:“这次你一定有机会被袁绍重用了。”田丰说:“袁绍外表宽厚而内心猜忌,不理解我的忠心。我因数次劝谏已经得罪了他,若是他胜利了或许能赦免我,现今他一败涂地,妒性必然发作,我没有活路了。”谋士逢纪忌恨田丰,他诋毁田丰说:“田丰听说您兵败而退,高兴得拍手大笑,说这早在他预料之中。”袁绍大怒,杀了田丰。
退回邺城后的袁绍,并不甘心于失败的结局,再度集结青、幽、并三州人马,企图与曹操决战。建安六年(201年)四月,袁绍率兵马开至黎阳,曹操根本不怕袁绍,从官渡北上迎击。他派轻骑兵,将袁军引至仓亭(今山东阳谷东南),然后发动攻击,大败袁军。次年正月,曹操再一次击败袁绍。