东汉末年轰轰烈烈的黄巾农民大起义虽然被镇压下去了,但它却沉重地打击了地主阶级的统治,使腐朽的东汉政权分崩离析,名存实亡。在镇压黄巾农民起义的过程中,各地州郡大吏独揽军政大权,地主豪强也纷纷组织“部曲”(私人武装),占据地盘,形成大大小小的割据势力,转入争权夺利、互相兼并的长期战争,造成中原地区“白骨露于野,千里无鸡鸣”的凄惨景象。当时的割据势力,主要有河北的袁绍、河内的张扬、兖豫的曹操、徐州的吕布、扬州的袁术、江东的孙策、荆州的刘表、幽州的公孙瓒、南阳的张绣等。在这些割据势力的连年征战中,袁绍、曹操两大集团逐步发展壮大起来。建安三年(198年),袁绍击败公孙瓒,占有青、幽、冀、并四州之地。建安元年,曹操把汉献帝挟持到许昌,形成“挟天子以令诸侯”的局面,取得政治上的优势。建安二年(197年)春,袁术在寿春(今安徽寿县)称帝。曹操即以“奉天子以令不臣”为名,进讨袁术并将其消灭。接着又消灭了吕布,利用张扬部内讧取得河内郡。从此曹操势力西达关中,东到兖、豫、徐州,控制了黄河以南,淮、汉以北大部地区,从而与袁绍形成沿黄河下游南北对峙的局面。袁绍的兵力在当时远远胜过曹操,自然不甘屈居于曹操之下,他决心同曹操一决雌雄。建安四年(199年)六月,袁绍挑选精兵10万,战马万匹,企图南下进攻许昌,官渡之战的序幕由此拉开。
袁绍举兵南下的消息传到许昌,曹操部将多认为袁军强大不可敌。但曹操却根据他对袁绍的了解,认为袁绍志大才疏,胆略不足,刻薄寡恩,刚愎自用,兵多而指挥不明,将骄而政令不一,于是决定以所能集中的数万兵力抗击袁绍的进攻。为争取战略上的主动,他作出如下部署:派臧霸率精兵自琅玡(今山东临沂北)入青州,占领齐(今山东临淄)、北海(今山东昌乐)、东安(今山东沂水县)等地,牵制袁绍,巩固右翼,防止袁军从东面袭击许昌;曹操率兵进据冀州黎阳(今河南浚县东,黄河北岸),令于禁率步骑2000屯守黄河南岸的重要渡口延津(今河南延津北),协助扼守白马(今河南滑县东,黄河南岸)的东郡太守刘延,阻滞袁军渡河和长驱南下,同时以主力在官渡(今河南中牟东北)一带筑垒固守,以阻挡袁绍从正面进攻;派人镇抚关中,拉拢凉州,以稳定翼侧。从以上部署看,曹操所采取的战略方针,不是分兵把守黄河南岸,而是集中兵力,扼守要隘,重点设防,以逸待劳,后发制人。从当时情势而言,这种部署是得当的。首先,袁绍兵多而曹操兵少,千里黄河多处可渡,如分兵把守则防不胜防,不仅难以阻止袁军南下,且使自己本已处于劣势的兵力更加分散。其次,官渡地处鸿沟上游,濒临汴水。鸿沟运河西连虎牢、巩、洛要隘,东下淮泗,为许昌北、东之屏障,是袁绍夺取许昌的要津和必争之地。加上官渡靠近许昌,后勤补给也较袁军方便。
建安四年(199年)十二月,当曹操正部署对袁绍作战时,刘备起兵反操,占领下邳,屯据沛县(今江苏沛县)。刘军增至数万人,并与袁绍联系,打算合力攻曹。曹操为保持许昌与青、兖二州的联系,避免两面作战,于次年二月亲自率精兵东击刘备,迅速占领沛县,转而进攻下邳,迫降关羽。刘备全军溃败,只身逃往河北投奔袁绍。当曹、刘作战正酣之时,有人建议袁绍“举军而袭其后”,但袁绍以儿子有病为辞拒绝采纳,致使曹操从容击败刘备回军官渡。
建安五年(200年)正月,袁绍发布讨曹檄文,二月进军黎阳,企图渡河寻求与曹军主力决战。他首先派颜良进攻白马的东郡太守刘延,企图夺取黄河南岸要点,以保障主力渡河。四月,曹操为争取主动,求得初战的胜利,亲自率兵北上解救白马之围。此时谋士荀攸认为袁绍兵多,建议声东击西,分散其兵力,先引兵至延津,伪装渡河攻袁后方,使袁绍分兵向西,然后遣轻骑迅速袭击进攻白马的袁军,攻其不备,定可击败颜良。曹操采纳了这一建议,袁绍果然分兵延津。曹操乃乘机率轻骑,派张辽、关羽为前锋,急趋白马。关羽迅速迫近颜良军,颜良仓促应战被斩杀,袁军溃败。曹操解了白马之围后,迁徙白马的百姓沿黄河向西撤退,袁绍率军渡河追击,军至延津南,派大将文丑与刘备继续率兵追击曹军。曹操当时只有骑兵600,驻于南阪(在白马南)下,而袁军达五六千骑,尚有步兵在后跟进。曹操令士卒解鞍放马,并故意将辎重丢弃道旁。袁军一见果然中计,纷纷争抢财物。
曹操突然发起攻击,终于击败袁军,杀了文丑,顺利退回官渡。袁军初战失利,但兵力仍占优势。七月,进军阳武(今河南中牟北),准备南下进攻许昌。八月,袁军主力接近官渡,依沙堆立营,东西宽约数十里。曹操也立营与袁军对峙。九月,曹军一度出击,没有获胜,退回营垒坚守。袁绍构筑楼橹,堆土如山,用箭俯射曹营。曹军制作了一种抛石用的霹雳车,发石击毁了袁军所筑的楼橹。袁军又掘地道进攻,曹军也在营内掘长堑相抵抗。双方相持3个月,曹操外境困难,前方兵少粮缺,士卒疲乏,后方也不稳固,曹操几乎失去坚守的信心。荀彧力主坚持,曹操于是一方面决心坚持危局,加强防守,命负责后勤补给的任峻采取10路纵队为一部,缩短运输队的前后距离,并用复阵(两列阵),加强护卫,防止袁军袭击;另一方面积极寻求和捕捉战机,击败袁军,不久派徐晃、史涣截击、烧毁袁军数千辆粮车,增加了袁军的困难。
同年十月,袁绍又派车运粮,并令淳于琼率兵万人护送,屯积在袁军大营以北约20公里的故市(河南延津县内)、乌巢(今河南延津东南)。恰在这时,袁绍谋士许攸投降曹操,建议曹操轻兵奇袭乌巢,烧其辎重。曹操立即付诸实行,留曹洪、荀攸守营垒,亲自率领步骑5000,冒用袁军旗号,衔枚缚马口,每人带一束柴草,利用夜暗走小路偷袭乌巢。到达后立即围攻放火。袁绍听说曹操袭击乌巢,又作出错误处置,只派一部兵力救援乌巢,用主力猛攻官渡曹军营垒。哪知曹营坚固,攻打不下。当曹军急攻乌巢淳于琼营时,袁绍增援的部队已经迫近。曹操励士死战,大破袁军,杀淳于琼,并烧毁其全部粮草。乌巢粮草被烧的消息传到袁军前线,袁军军心动摇,内部分裂。曹军乘势出击,大败袁军。袁绍仓惶带800骑退回河北,曹军先后歼灭和坑杀袁军7万余人,官渡之战就这样以曹胜袁败而告结束。
官渡之战是袁曹双方力量转变、当时中国北部由分裂走向统一的一次关键性战役,对于三国历史的发展有着极其重要的影响。此战曹军的胜利不是偶然的,袁曹间的兼并战争,虽属于封建割据势力之间的争斗,但实现地区性的统一,客观上符合人民的愿望。曹操在政治上抑制豪强,得到中小地主阶级的拥护;“挟天子以令诸侯”,使自己处于有利的政治地位;注意网罗人才,得到地主阶级知识分子的拥护;经济上实行屯田,不仅较有效地解决了后勤供应,且在一定程度上安定了社会生活,赢得了民心。除此之外,作战指导上的高明也是他取得胜利的重要因素。曹操根据敌强己弱的具体情况,采取后退一步,以逸待劳,后发制人的作战方针。在防御作战中,能从被动中力争主动,指挥灵活;面临危局,坚定沉着;善于捕捉战机,果断施行;善于听取部属意见,紧紧抓住奇袭乌巢这一关键环节,终于取得胜利。反观袁绍,政治上纵容豪强,兼并土地,任意搜刮,因而遭到人民反对。袁绍内部不和,又骄傲轻敌,刚愎自用,不能采纳部属的正确建议,迟疑不决,一再丧失良机。终致粮草被烧,后路被抄,军心动摇,内部分裂,全军溃败。