予禾教育

官渡之战

建安五年(二月袁绍进军黎阳 — 十月乌巢溃败) 公历 200 年 – 200 年
三国两晋战役曹袁之争 史源待核 2 存异说,未详考 3

建安五年曹操与袁绍在黄河南岸的决战。一场靠一夜奇袭定下的胜负,决定了此后北方由谁来收拾。

叙事

建安四年,袁绍终于把公孙瓒逼上了他自己造的那座高楼。楼塌了,火起了,河北再没有第二个人可以跟他说话。

这一年袁绍手里握着四个州——幽、冀、青、并。冀州是当时天下最富的地方之一,人口稠密,产铁产马,能供得起十几万人常年在外面吃饭。他出身汝南袁氏,四世三公,天下的名士见了他都要低半个头。四十多岁的袁绍站在河北,往南看,只剩一个人挡路。

那个人是曹操。

曹操的处境要难看得多。他名义上是朝廷的司空,手里攥着汉献帝,这块牌子好用,也扎手——它意味着所有想当忠臣的人都会来找他,也意味着所有想当忠臣的人都会来杀他。他的地盘是兖州、豫州和刚打下来的徐州,四面全是缺口:西边有关中诸将,南边有张绣、有刘表,东南有孙策,背后随时可能翻脸的人多得数不过来。

更要命的是粮。中原被打烂了十来年,田里长的是草。他能凑出来的兵,跟袁绍不在一个量级上。

所以问题不是打不打,而是怎么打,以及在哪里打。


袁绍这边其实有人看得很清楚。

沮授的主张是:不必急。河北富,曹操穷;我们守住黄河,派轻骑不断骚扰他的边地,让他两三年不得安生,他自己就先垮了。田丰说的也是一个意思——曹操善用兵,变化多,不能拿硬碰硬去赌一场;应当据险固守,慢慢消耗。

这两个人说的,是当时最正确的话。

袁绍不听。

后世总喜欢把这归结为”袁绍笨”,其实不对。袁绍不是不懂持久战的道理,他是不能持久。他的集团是靠河北士族和从洛阳带来的旧部拼起来的,内部本来就分成好几块,郭图、审配、逢纪、沮授、田丰彼此不服,谁的主张被采纳,谁就多一分权。一场速胜可以把所有裂缝暂时糊住,一场三年的消耗战只会让裂缝越裂越大。

而且他有十几万人。当一个人手里有十几万人的时候,“再等三年”这四个字,说出口都显得懦弱。

于是田丰被关进了牢里——出发前,袁绍先把说真话的人关了起来。


建安五年正月,曹操做了一件所有人都反对的事:他不去河边布防,反而带兵向东,去打刘备。

刘备刚刚杀了徐州刺史车胄,占了下邳,摆明了要在曹操背后开一个口子。众将说,现在跟您争天下的是袁绍,袁绍马上就到,您却往东跑,万一袁绍抄了后路怎么办?

曹操的回答是:刘备是人杰,现在不打,将来一定成祸患;袁绍虽然志向大,反应却慢,他不会动。

结果他赌对了。曹操东行、破刘备、俘关羽,再回到官渡,前后不过一个多月。袁绍在这一个多月里,什么也没做。

田丰在狱中听说了,说了一句话,意思是:这是天赐的机会,错过了就没有了。

袁绍的迟钝,不是懒。一个由几派人马拼起来的集团,任何一个决定都要开会,任何一次开会都会吵架。曹操是自己一个人拍板,袁绍是一群人拍板——这两种机器的转速,差着一个数量级。


二月,袁绍的大军压到黎阳,隔河而望。前锋颜良渡河,去打白马的东郡太守刘延。

曹操来救。荀攸给了他一个办法:不要直接去白马。带兵到延津,摆出一副要从这里渡河、去抄袁绍后路的架势。袁绍必然分兵西来堵你。等他兵一动,你立刻回身,轻骑直插白马——那里就只剩颜良了。

袁绍上钩了。他把兵分了一半向西。

曹操掉头东进,一夜之间赶到白马近郊。等颜良发现的时候,曹军已经在眼前。仓促之间列阵,关羽在人马之中望见了颜良的麾盖,直接策马冲进去,把他刺于万军之中,割下首级回来。袁军前锋崩了,白马之围解了。

这是关羽一生里最纯粹的一次战斗,也是他后来被反复神化的起点。而这一年,他还是个曹操名下的降将。


曹操没有守白马。他把白马的百姓迁走,沿着黄河向西南撤——他要的从来不是一座城,是把袁绍拖进他选好的战场。

袁绍追。追到延津之南的时候,出事了。

曹操命令骑兵下马,把马鞍卸了,辎重车丢在路上,人躲进土坡后面。追兵到了,看见满地的军械粮车没人管,队形立刻散了,人人下马去抢。

曹操等的就是这个。五百多骑兵从坡后冲出来,跟着步兵压上去,把正在抢东西的袁军拦腰截断。这一战斩了文丑。

两阵之间,袁绍折了两员大将。这个开局,对一个拥有十几万人的统帅来说,是不祥的。

沮授劝他:我军人多但不够精,曹军精但不够多;他缺粮,利在速战,我们不能急。袁绍再一次不听,而且这一次,他把沮授的兵权分掉了。


八月,袁绍把营寨推到官渡,依着沙堆扎下来,东西连绵数十里。曹操也分营对峙。

从这里开始,这场仗变成了一场消耗。

袁绍堆起土山,架起高楼,居高临下往曹营里射箭。箭像下雨一样落下来,曹军的人在营里走路都得举着盾牌。曹操做出投石的车来还击,把土山上的楼砸塌。袁军又挖地道往营里钻,曹操就在营前挖长沟横着拦。

进攻的一方在想办法,防守的一方也在想办法。表面上是平手。

但两边耗的东西不一样。袁绍耗的是时间,曹操耗的是命。

九月里,曹操出营接战,打输了,只好退回去死守。到了后来,粮几乎见底,运粮的民夫被打怕了,士卒饿着肚子还要在土墙上挨箭。军中开始有人偷偷跟袁绍写信——那是很实际的打算:万一败了,得有个去处。

曹操自己也动摇了。他写信给留在许都的荀彧,商量要不要退回去。

荀彧回信,大意是:现在退,就是把主动权整个交出去;您以最弱当最强,如果压不住他,就要被他吞掉。眼下双方都到了极限,谁先动谁就完了。这正是出奇制胜的时候,千万不能失去这个机会。

这封信里最有分量的不是道理,是一个判断——荀彧告诉曹操:你觉得你快撑不住了,袁绍那边也一样。

曹操决定不退。

一个人的伟大,很多时候只体现在这样一个瞬间:所有理由都指向撤退,而他多站了一会儿。


转机来自一个叛徒。

许攸是袁绍的老朋友,年轻时和曹操也相识。他向袁绍献过一条计:曹操把全部兵力都压在官渡,许都必然空虚,派一支轻骑绕过去打许都,天子一到手,胜负立判。

袁绍没有采纳。

紧接着,许攸家里人犯了法,被留守邺城的审配抓了起来。许攸得到消息,连夜出营,投了曹操。

曹操当时已经睡下了,听说许攸来,鞋都没穿就跑了出去。

许攸带来的是一句话:袁绍的辎重一万多车,屯在乌巢,离他的大营四十里,守将是淳于琼,防备并不严。

这句话的分量,曹操立刻听懂了。他没有开会,没有商议,也没有问许攸是不是诈降——他只是问了自己一个问题:如果这是真的,机会有多大;如果这是假的,我最坏的结局,跟不动手的结局有什么区别。

答案是:没有区别。他本来就要输了。


当夜,曹操留曹洪、荀攸守大营,自己挑了五千步骑,全部打袁军的旗号,衔枚缚马口,人人抱一捆柴草,抄小路直奔乌巢。路上遇到盘问的,就答一句”袁公怕曹操抄后路,派我们去加强守备”——袁军放行了。

天没亮,乌巢的粮囤四面起火。

淳于琼那边有一万多人,人数比曹操多。天亮以后他看清了曹军兵少,出营列阵反攻。曹操上去就打,把他打回了营里。

与此同时,乌巢起火的消息传到了袁绍大营。

这是袁绍这一生里最后一个重大决定,也是最错的一个。

张郃说:曹操亲自去了乌巢,那里一破,我们全军就没有吃的了,请立刻发重兵去救。

郭图说:不如去打曹操的大营。他的营空了,我们直接端了它,他自然要回来救,乌巢之围不攻自解。

这是”围魏救赵”的道理,听上去很高明。它唯一的问题是——曹操的大营不是空的,而且,就算你端了曹操的营,你的粮已经烧了。

袁绍两个都做了一半:派轻骑去救乌巢,派重兵去攻曹营。

于是两边都不够。

救乌巢的骑兵到了,曹操的部下报告说敌人快到了,请分兵去挡。曹操头也不回,只说了一句:等他们到了背后再来报。

这一句话是全场最狠的一刀。它的意思是:我不分兵,我就在这几十步内,先把淳于琼砍了。

淳于琼死了。一万多车粮草,全部烧成灰。

而袁绍那支去攻曹营的重兵,撞在了曹洪的壁垒上,攻不下来。


消息传回前线的时候,张郃、高览还在曹营外面攻城。

郭图为了掩饰自己的错,反过来在袁绍面前说张郃的坏话——说他听到军败,言语间还带着幸灾乐祸。

张郃听到了。

他和高览烧了攻城的器械,向曹操投降。

这一降,是压垮袁军的最后一件事。十几万人立刻明白了两件事:粮没了,将也走了。

军队是一种奇怪的东西。它可以在极大的伤亡下不散,却会在某一个瞬间,因为一句话、一阵风、一个逃跑的背影,整个化掉。官渡的那一刻就这样到来了。

曹军全线压上,袁军土崩。袁绍连甲都来不及披,带着长子袁谭,以八百骑渡河北去。

十几万大军,走出去的只有八百骑。


剩下的是清点。

袁绍的图书、车仗、金帛,全部落入曹操之手。降卒极多——多到曹军自己都养不起。这些人被处置了,诸书都说八万,也有说七万的。这个数字后来被反复引用,因为它太大了,大到不像一场胜利,像一场灾难。

在缴获的文书里,有一批信。是曹操自己的部下和许都的官员,在最艰难的那些日子里写给袁绍的。

曹操把信全部烧了,一封没看。他说了一句话,大意是:当时连我自己都保不住自己,何况别人。

这不是宽厚,这是精算。追究下去,他要杀掉自己一半的官吏和大半的将领;烧掉,他花零成本买下了所有人的忠诚。一个人在胜利的顶点还能做这样的计算,比他在乌巢的那把火更可怕。

沮授没跑掉。他被俘之后,见了曹操,说自己不降。曹操本来很欣赏他,厚待了他,但他终究想回河北去,最后被杀了。

田丰在狱中。有人向他道喜:您说对了,主公败了,这下一定重用您。

田丰说:如果他赢了,我还能活;他败了,我一定死。

袁绍回到河北,对身边的人说:我当初不听田丰的话,现在回去,要被他笑话了。

田丰死了。


官渡以后,袁绍并没有立刻垮。河北的底子还在,他还打退过曹操的进攻。但建安七年,他忧愤发病,死了。

真正杀死袁氏的不是官渡,是官渡之后。袁谭和袁尚为了继承权互相攻杀,把河北最后的力量耗在了自己人身上——而这恰恰是袁绍生前那套”谁也不得罪、谁也不确定”的作风留下的遗产。他连自己的接班人都不肯明说。

曹操只需要在旁边等,一次次地等他们打累了,再进一步。到建安十二年,北方大定。


后人讲官渡,最爱讲的是”以少胜多”。

但这四个字,恰恰是这场战役里最不重要的部分。

袁绍从头到尾没有输在兵力上。他输在:正确的意见摆在面前时,他选择了让他最舒服的那一条;两个方案都有道理时,他两个都做了一半;下属吵架时,他既不裁决,也不制止,只是听着。

他不是没有能力,他是没有决断。而一个没有决断的人,兵越多,死得越快——因为每一支多出来的兵,都会多出一个必须被安抚的将领,多出一种必须被容忍的意见。

曹操则相反。他缺粮、缺兵、缺后方,缺到写信问部下能不能撤退。但在乌巢那个晚上,当所有条件都是错的,他只做了一件事:把仅有的东西,全部押在一个点上。

这是两种人格的对撞,也是两种组织的对撞。

那一夜之后,中国北方的走向,就再没有第二个答案了。

考据

史料本体。 本条目主要依据《三国志·魏书一·武帝纪第一》建安五年条(已实查卷次,s1)与《三国志·魏书六·董二袁刘传》中的袁绍传及裴松之注(已实查卷次,s2)。关羽白马刺颜良一事,见《三国志·蜀书六·关张马黄赵传》关羽本传(已实查卷次,s3)。《后汉书》袁绍传、《资治通鉴》汉纪建安五年部分卷次尚未实查,标「待核」(s4、s5)。凡本条目未实查原文者,一律不在正文中作引号直引。

兵力问题。 《三国志·武帝纪》记曹军”兵不满万,伤者十二三”。这条记载在南朝就已经被怀疑:裴松之作注时提出,曹操分营与袁绍相当、连营数十里,若只有不到一万人,如何能分?袁绍若真有十倍之众,为何不四面围死,反而让曹操能抽出五千人去抄他的后路?裴松之的结论是此数偏少。今人多同意曹军确实远少于袁军,但绝非”不满万”,估计从数万到十万不等。本站的处理是:承认双方兵力悬殊这一基本事实,但把”不满万”标为存疑之说,见 disputes 第一条。

降卒数字。 裴松之注引诸书,皆云曹操坑袁绍降卒八万,也有作七万的。本站取八万为主说,并列七万异说。需要说明的是:这个数字与”袁军十余万”的总数之间存在明显的张力——如果降卒真有七八万,那么袁军的建制并未被全歼,而是大部分成建制地投降;这反过来又成为质疑曹军”兵不满万”的一条旁证:不到一万人,如何看管七八万降卒?此点尚未详考。

斩文丑者为谁。 武帝纪于延津之战只记文丑被斩,并未说明是谁所斩。小说《三国演义》把颜良、文丑都归到关羽名下,是文学处理。正史中关羽所斩者,仅颜良一人。

许攸出走。 袁绍拒绝许攸袭许都之计在前,许攸家人犯法被收在后,两件事孰为主因,史无定论。本站以”家属犯法”为主说,另说”贪财求索不遂”并列,见 disputes 第三条。

关于郭图。 郭图主张不救乌巢而攻曹营,以及事后构陷张郃,这两条主要来自《三国志》袁绍传及相关注文。张郃本传与袁绍传在细节上略有出入,本条目取其大略,未逐条辨析。

纪年。 官渡之战诸事均发生于建安五年(公元 200 年)内,农历正月至十月。农历正月约当公历 200 年 2 月,十月约当公历 200 年 11 月,未跨公历年,故 time 的起讫同为 200。正文中的月份一律为农历月。

注释

  • 官渡:在今河南中牟东北一带,是许都北面的门户,也是黄河南岸通往许都的要道。
  • 黎阳:黄河北岸渡口,在今河南浚县一带。袁绍南下的前进基地。
  • 白马:黄河南岸城邑,在今河南滑县东。
  • 延津:黄河渡口,在今河南延津一带。
  • 乌巢:袁军屯粮之地,在今河南延津东南一带。距袁绍大营四十里。
  • 沮授(jǔ shòu):袁绍谋士,主持久之策,屡谏不用。
  • 逢纪(páng jì):袁绍谋士。姓”逢”此处读 páng。
  • 淳于琼(chún yú qióng):袁绍部将,与曹操、袁绍同为汉末西园八校尉之一。
  • 司空:东汉三公之一,名义上掌水土营建,实为宰辅之任。曹操以司空录尚书事,总揽朝政。
  • 四世三公:袁氏自袁安以下四代人中,有五人官至三公(司徒、司空、太尉)。这在东汉是极高的政治资本——门生故吏遍天下,袁绍起兵之所以能一呼百应,很大程度上靠的是这块招牌。
  • 衔枚:行军时口中横衔一根短棍,防止出声。

关 键 数 据

袁绍据有州数四州(幽、冀、青、并),建安四年(199)灭公孙瓒后成形
袁军兵力步兵十余万、骑兵一万
曹军兵力(本传记载)兵不满万,伤者十二三
延津伏击出击兵力骑兵五百余骑(另有步兵)
袁军连营规模依沙堆为屯,东西数十里
乌巢与袁军大营距离四十里
淳于琼护粮兵力万余人
乌巢屯积辎重万余乘
曹操奇袭乌巢兵力步骑五千
袁绍北渡随从与长子袁谭以八百骑渡河
战后处置降卒诸书皆云坑绍众八万,或云七万
袁绍卒年建安七年(202)忧病而死
曹操统一北方之年建安十二年(207)征乌桓、定辽东后北方大定

学 界 异 说

官渡之战中曹军的实际兵力是多少?
  • 曹军人数确实远少于袁军,但"兵不满万"之说偏低,实际当有数万
  • 依《三国志》本文,官渡曹军确实兵不满万,伤者十二三
  • 曹军总兵力与袁军相去不远,今人有估至十万者
⚠ 本站已知此处有异说,尚未详考各家出处——这是待补的功课,不是结论。
战后被处置的袁军降卒是七万还是八万?
  • 八万(裴松之注称"诸书皆云")
  • 七万(异说)
⚠ 本站已知此处有异说,尚未详考各家出处——这是待补的功课,不是结论。
许攸为何在决战前夜离袁归曹?
  • 家属犯法被审,许攸怒而出走
  • 许攸贪财,求索不遂,为袁绍所疏
⚠ 本站已知此处有异说,尚未详考各家出处——这是待补的功课,不是结论。

影 响(编 者 的 推 断)

e-cao-tongyi-beifang(未撰) 200 – 207
官渡摧毁的是袁氏的野战主力与决策威信,此后河北的抵抗以内讧和守城为主;从官渡到北方大定,曹操用了七年,而这七年的走向在官渡那一夜已大致注定。
官渡使曹操成为唯一可能一统天下的力量,也正因如此,南方诸方势力才被逼到必须联手;没有官渡的胜利,就没有赤壁那种"举天下之众压一隅"的格局。

为什么单独列出来:没有任何一条史料能"证明"跨越百年的因果——那是现代人的推断。 所以它和史料直陈的事实分开显示。明示这是编者的解释,比假装有史料诚实。

关 联

参与 p-cao-cao(未撰) — 亲率步骑五千夜袭乌巢
参与 p-yuan-shao(未撰) — 拥四州之众南下,兵败北渡
参与 p-guan-yu(未撰) — 白马阵中刺杀颜良,解白马之围
参与 p-yan-liang(未撰) — 袁军前锋,攻白马,战死
参与 p-wen-chou(未撰) — 袁军将领,延津追击时战死
参与 p-ju-shou(未撰) — 谏缓进持久,不用;兵败被俘,后被杀
参与 p-tian-feng(未撰) — 谏勿轻举,下狱;战后被袁绍所杀
参与 p-xu-you(未撰) — 自袁营出走归曹,献乌巢屯粮之实
参与 p-chunyu-qiong(未撰) — 领万余人护粮屯乌巢,兵败被斩
参与 p-zhang-he(未撰) — 请救乌巢不用,后与高览降曹
参与 p-gao-lan(未撰) — 与张郃同降曹
参与 p-guo-tu(未撰) — 主攻曹营之议,事败构陷张郃
参与 p-xun-yu(未撰) — 守许都,去书劝曹操勿退
参与 p-xun-you(未撰) — 献声东击西解白马之围之策
参与 p-liu-bei(未撰) — 建安五年正月为曹操所破,奔袁绍
地点 pl-guandu-han(未撰)
起因 e-yijing(未撰)

被 引 用

史 源

s1 《sanguo-zhi》 卷一·魏书一·武帝纪第一(建安五年条) 「兵不满万,伤者十二三」
s2 《sanguo-zhi》 卷六·魏书六·董二袁刘传(袁绍传及裴松之注) 「诸书皆云公坑绍众八万,或云七万」
s3 《sanguo-zhi》 卷三十六·蜀书六·关张马黄赵传(关羽传)
s4 《hou-han-shu》 待核(袁绍传) · 待实查
s5 《zizhi-tongjian》 待核(汉纪·建安五年) · 待实查

⚠ 本条目有 2 条史源的卷次尚未实查,一律标「待核」。
本站铁律:不得凭记忆填卷次——那正是 AI 最容易一本正经编造的东西。 未实查是老实的状态,编一个卷次才是欺骗。