了解中华历史知识从这里搜一搜
当前位置:历史网 > 历史知识

历史知识

曹操攻取汉中之战

2022-05-19

说起曹操攻取汉中的作战,可能很多人以为,这次作战并没有什么激烈的交战,对手也不强,没有什么值得写的内容。确实,本次作战,虽然时间不短,但是实际上在汉中作战的时间很短。不过,本次作战,有三个问题还是很值得探讨一番的。其一,曹操究竟是怎么攻取阳平关的?其二,曹操在占领汉中后不趁势取蜀是否是战略性错误?其三,曹操为何不走秦岭谷道进攻汉中,而要走阳平关?

一、 当时的军事形势汉献帝建安二十年(公元215年),应当说是一个多事之年。在本年中发生的比较著名的事件包括:曹操攻取汉中、消灭张鲁集团;刘备孙权为争夺荆州险些发生大规模交战;孙权以十万大军进攻合肥遭到惨败。此前,建安十九年,夏侯渊等在西线,连续击败马超、韩遂、宋建、氐王千万,完全控制了陇右、河西等凉州之地,消除了南攻汉中的侧翼隐患。东线,曹操分别在建安十七年十月到次年四月和建安十九年七月到十月两次大规模进攻孙权于濡须口,虽然没有取得什么战果,但是也对孙权造成了很大的威慑。而在建安十九年中,刘备已经控制了蜀地,势必不久就将继续北攻汉中。正是在这种局势下,曹操才果断决定,发动这次消灭张鲁、占领汉中的战役。

二、 曹操的作战部署曹操兵发汉中,基本上有四条路线可供选择。其一,子午谷道;其二,谠骆谷道;其三,褒斜谷道,其四,陈仓故道。这几条道路,各有利弊,比如前三条谷道,基本属于道路艰险难行,但是谷口没有敌人的险关,敌军一般是依托山势进行防御。而第四条陈仓故道,则相反,道路相对平坦,但是需要强攻阳平关。曹操选择了第四条路线:先到达陈仓,再由陈仓经大散关南下,通过河池后转向东南,过沮县到达阳平关一带。曹军动用的兵力大致是十万左右。这个在《魏名臣奏》载杨暨表中有记载:“武皇帝始征张鲁,以十万之众,身亲临履……。”而张鲁方面的兵力,只知道张卫(张鲁之弟)、杨昂、杨任带领数万兵马据守阳平关一线,再加上张鲁在南郑的部队和北线少数监视秦岭谷口的部队,大致总兵力在5万人左右。而武都氐人的兵力应在1万多人。由于曹军走陈仓道进攻汉中,势必要经过武都郡,从而导致氐人的抵抗。曹操这次作战,比较自信,十万大军竟然是采取一路集中进攻的部署,而没有在秦岭的其他谷道分路合击。

三、 作战经过汉献帝建安二十年(公元215年),魏公曹操,亲自统率大军进攻张鲁,三月,曹操大军到达陈仓。此时位于凉州武都郡的氐人,阻塞道路,曹操先派出张郃、硃灵部,击破了进入武都沿途的氐人。四月,大军自陈仓出散关进兵到达武都的河池一带,“氐王窦茂众万馀人,恃险不服”,曹军受阻。五月,曹军经过激战,攻克了河池,打通了南下的道路。七月,曹操主力到达汉中的西部前沿阳平关一带。此时,张鲁的弟弟张卫,带领大将杨昂、杨任和数万兵马,依托阳平关南北二山之间的险要地形,修筑了长达十余里的防御工事,曹军开始猛攻。数日之后,由于地形险要、防御坚固,曹军在伤亡很大之下,依然毫无进展。曹操于是决定假装撤退,以麻痹防御的张鲁部队。果然,张卫等人得知曹操攻关不下,已经全线撤退,就放松了阳平关一线的戒备(这其中第一线部队不由自主的放松戒备占很大的比重)。于是,曹操派出忄剽、高祚两将率部进行夜袭。正巧半路驱赶了数千只野糜冲入了张卫的营垒,导致其防御工事的损毁,结果曹军趁虚而入,占领了部分敌军营垒,同时鼓角齐鸣,给张卫造成了曹军主力全线突破的假象,张卫匆忙之间,难以辨别情况,只好放弃阵地逃走了(一说投降)。汉中的西大门就这样被曹军攻克了。于是汉中也就不可守了。此时,张鲁打算就此向曹操投降,但是其功曹阎圃建议他:“今以迫往,功必轻;不如依杜濩、赴朴胡相拒,然后委质,功必多。”于是张鲁逃向巴郡。临走时,有人建议烧毁汉中等地的仓库,但是张鲁认为:“本欲归命国家,而意未达。今之走,避锐锋,非有恶意。宝货仓库,国家之有。”于是把所有的仓库加以封存,留给了曹操。曹操进驻汉中首府南郑。曹操占领汉中之后,恢复汉宁郡为汉中郡,又从汉中分出安阳、西城为西城郡,置太守;分锡、上庸郡,置都尉。此时依然是建安二十年七月。这时发生了一件争论很大的事件,那就是是否趁刘备远在荆州争夺三郡之机,乘胜前进,进攻蜀地。曹操的重要谋士刘晔司马懿均建议趁机继续南下,但是曹操否定了他们的建议。此事我们在后面将专题讨论之。到了八月,孙权率领十万大军攻打合肥,遭到张辽等人的反击和顽强防御。九月,巴七姓夷王朴胡、賨邑侯杜濩举巴夷、賨民来附,到这时,巴郡才正式归附于曹操。于是曹操分巴郡,以朴胡为巴东太守,杜濩为巴西太守。十一月,张鲁终于从巴中来投降。至此,汉中战役终告结束。曹操在留下夏侯渊都督汉中之后,自己于十二月离开南郑北返。汉中战役,曹军自三月到十一月,共历时九个月,消灭了割据汉中地区的张鲁集团和武都一带的氐王窦茂,控制了武都、汉中全部以及巴郡的北部地区,其中,实际用于行军、作战的时间,只是三月到七月的四个月。这次战役,可以说是曹操一生中最后拓展的一块地盘,虽然后来又放弃掉了,但是其意义还是很大的。汉中的夺取,为下一步进军蜀地打下了很好的基石。曹军据有汉中,不仅可以出阳平关走金牛道直插成都平原,还可以走米仓道进攻东部的巴郡一带,同时,武都一带的魏军也可以直接南下而无需担心侧翼汉中一带的威胁。即使不展开攻势,由于有汉中的屏障,魏国的的关中和陇右都将受到很好的保护,而成为战役后方。

四、 关于阳平关攻坚的争论关于天险阳平关的攻克过程,史书有三种记载。第一种,《三国志武帝纪》:秋七月,公至阳平。张鲁使弟卫与将杨昂等据阳平关,横山筑城十馀里,攻之不能拔,乃引军还。贼见大军退,其守备解散。公乃密遣解忄剽、高祚等乘险夜袭,大破之,斩其将杨任,进攻卫,卫等夜遁,鲁溃奔巴中。公军入南郑,尽得鲁府库珍宝。《三国志刘晔传》:太祖征张鲁,转晔为主簿。既至汉中,山峻难登,军食颇乏。太祖曰:“此妖妄之国耳,何能为有无?吾军少食,不如速还。”便自引归,令晔督后诸军,使以次出。晔策鲁可克,加粮道不继,虽出,军犹不能皆全,驰白太祖:“不如致攻。”遂进兵,多出弩以射其营。鲁奔走,汉中遂平。——这一种记载,说明曹操看到阳平地形险要,强攻难以凑效,因此,先假装撤军,待守军防备松懈之时,秘密派遣部队发动夜袭,结果大破守军,斩杀守将杨任,敌军阳平总指挥张卫连夜逃走,阳平关才被攻克。而《刘晔传》则表明,曹操开始确实是打算撤军的,而且部队已经撤离了阳平关的攻击阵地。但是在刘晔的建议下,又最后做了一次特殊的进攻,而大获成功。

第二种,《魏名臣奏》载董昭表曰:“武皇帝承凉州从事及武都降人之辞,说张鲁易攻,阳平城下南北山相远,不可守也,信以为然。及往临履,不如所闻,乃叹曰:‘他人商度,少如人意。’攻阳平山上诸屯,既不时拔,士卒伤夷者多。武皇帝意沮,便欲拔军截山而还,遣故大将军夏侯惇、将军许褚呼山上兵还。会前军未还,夜迷惑,误入贼营,贼便退散。侍中辛毗、刘晔等在兵后,语惇、褚,言‘官兵已据得贼要屯,贼已散走’。犹不信之。惇前自见,乃还白武皇帝,进兵定之,幸而克获。此近事,吏士所知。”——这一种记载,说明曹操因强攻阳平不下,决定撤军,于是下令在山上攻关的部队撤回,但是前军在撤回的半路于夜里迷路,结果误入敌军营地,敌军败退、逃散。曹操依靠侥幸攻克了阳平关。

第三种,《魏名臣奏》载杨暨表曰:“武皇帝始征张鲁,以十万之众,身亲临履,指授方略,因就民麦以为军粮。张卫之守,盖不足言。地险守易,虽有精兵虎将,势不能施。对兵三日,欲抽军还,言‘作军三十年,一朝持与人,如何’。此计已定,天祚大魏,鲁守自坏,因以定之。”《世语》曰:鲁遣五官掾降,弟卫横山筑阳平城以拒,王师不得进。鲁走巴中。军粮尽,太祖将还。西曹掾东郡郭谌曰:“不可。鲁已降,留使既未反,卫虽不同,偏携可攻。县军深入,以进必克,退必不免。”太祖疑之。夜有野麋数千突坏卫营,军大惊。夜,高祚等误与卫众遇,祚等多鸣鼓角会众。卫惧,以为大军见掩,遂降。——这两种记载,则说是由于有数千只野麋在夜里冲入张卫的军营,把张卫的军营踏坏,导致张军大惊而发生混乱,曹军高祚等趁机虚张声势,鼓角齐鸣,张卫以为曹军主力已经攻占各军营,只好投降。

这几种记载,《三国志武帝纪》是说曹操依靠主动策划的假撤退再夜袭,攻取了阳平关,《魏名臣奏》则说是曹军撤退迷路误入敌军营垒而,而《世语》等则认为是很偶然的大批野麋夜里闯入敌营,导致敌军崩溃,是敌军的防御自己完蛋了。但是综合以上记载,我们经过分析,可以发现真正的情况只能是第一种和第三种的综合结果。1、《魏名臣奏》载董昭表的说法,有一个违反基本军事常识的错误,那就是在古代,由于交通、通讯、指挥均很落后,尤其是指挥、通讯,很多要依靠旗帜,因此,部队除非情况危急,是不会夜晚行动的。基本上所有的夜间行动,除了夜袭,就是宵遁。而曹操并没有遭到张鲁部队的紧逼,而且是主动撤退,完全没有夜间进行撤退的必要。因此,这个说法是不可靠的。部队如果在山中迷路,完全不能在黑夜中混乱不堪地到处摸索找路,而是会立即就地选择有利地形布置安营,放出警戒。再派出侦查骑兵,寻找返回的路线。说大批部队在黑夜中迷路了还在盲目地到处走,是完全不现实的。2、《世语》的说法,也有一个重大问题,那就是野糜为什么会在夜里突然不顾一切地冲入张鲁军的营垒?我们知道,防御的营垒,为了防止敌军的偷袭和便于观察,在夜晚会在营垒四周燃烧许多的篝火以及火把,而且张鲁的防御阵地绵延十余里,这个阵势是很明显的。而野糜是一种胆小、警觉、温顺的食草型动物,而且很害怕火。正常情况下,是完全不可能不顾一切地冲入有很多篝火和数万人马的营垒的。因此,这个野糜在夜里突然不顾一切地冲入张鲁军的营垒的原因就在于曹军的夜袭,这些野糜无意中正好处于夜袭的曹军和张卫的营垒之间。3、《三国志武帝纪》记载说,曹操布置了先假装撤军,待敌防御松解后,发动夜袭。曹操派出的是将军解忄剽、高祚的部队,这批部队,在夜里偷偷向阳平关进军,半路上却被胆小而又警觉的野糜发现,于是野糜只好向着曹军行进相反的方向奔跑。结果在跑到阳平关前时,遇到了绵延十余里的张鲁军营垒,野糜一时间无路可逃,只好不顾一切地冲过营垒。这才造成了敌军营垒的损坏。《世语》记载“夜,高祚等误与卫众遇,祚等多鸣鼓角会众”。我认为有错误,这里的部队并不是“误与卫众遇”,而是主动进行的夜袭作战。因为一般情况下,部队夜里是不会行动的。由于高祚的夜袭部队不可能是大部队,因此,只能“多鸣鼓角”,以造成兵力强大的声势。但是高祚部队夜里的突然出现在张鲁营垒前,则与《三国志武帝纪》的记载正好吻合。

因此,曹军攻克阳平关,固然有野糜突然冲坏张军营垒的偶然因素,但是我们应看到,这个情况也是夜袭部队导致的,野糜并不会无缘无故地主动冲击营垒。而且,即使没有野糜突然冲坏张军营垒,夜袭的曹军也很有可能一举突破张军的防备已经松解的营垒。野糜的冲击,只是省去了曹操攻打的麻烦。

五、 关于曹操是否应当趁势南下攻蜀的争论

关于这个问题,其记载见于《三国志刘晔传》:晔进曰:“明公以步卒五千,将诛董卓,北破袁绍,南征刘表九州百郡,十并其八,威震天下,势慴海外。今举汉中,蜀人望风,破胆失守,推此而前,蜀可传檄而定。刘备,人杰也,有度而迟,得蜀日浅,蜀人未恃也。今破汉中,蜀人震恐,其势自倾。以公之神明,因其倾而压之,无不克也。若小缓之,诸葛亮明於治而为相,关羽张飞勇冠三军而为将,蜀民既定,据险守要,则不可犯矣。今不取,必为后忧。”而《晋书宣帝纪》记载:(司马懿)从讨张鲁,言于魏武曰:“刘备以诈力虏刘璋,蜀人未附而远争江陵,此机不可失也。今若曜威汉中,益州震动,进兵临之,势必瓦解。因此之势,易为功力。圣人不能违时,亦不失时矣。”魏武曰:“人苦无足,既得陇右,复欲得蜀!”言竟不从。那么,刘晔、司马懿的建议是否可行?曹操是否真的错过了一举收复蜀地的机会呢?这个问题历来有两种相反的意见。一种意见认为曹操确实错过了大好时机,属于战略性决策失误,而另一种意见则认为曹操的决策是完全正确的,以当时的兵力和战役准备,在短时间内根本不可能攻蜀成功。本人赞同第二种意见。理由如下:1、部队疲惫不堪。曹军在此前,即使从三月自陈仓进兵开始,到七月进占汉中,也已经连续在险峻的山地行军作战达五个月之久,其部队已经处于很疲劳的状态。在此情况下,不经休整,就要连续发动大规模的进攻蜀地的战役,对部队的战斗力削弱很大;2、后勤补给困难重重。曹军进攻汉中,其粮草基地必然设在关中地区,这样就必须隔着险峻的秦岭向前线运送粮草,困难重重,即使是攻打阳平关的很短的时间,曹军竟然就已经发生了粮草危机。如果要从汉中直接大举进攻蜀地,势必造成更大的后勤问题。虽然汉中可能有一些粮草,但是一则汉中本身军队数量较少,而且这些部队投降之后,也要吃饭,因此如果要想依靠汉中来解决大军的大规模战役粮草保证是不现实的。3、兵力不足。曹操投入汉中战役的兵力,大体在十万左右,这个兵力是根据当时张鲁集团的防御兵力集结的。拿下汉中之后,如果要继续大举入蜀,则必然要在新收复的汉中、武都留下部分兵力,那么能用于攻蜀作战的部队,大约只能有八到九万人。这对于刘备集团有剑阁天险可守的部队而言,已经没有任何的优势可言。也就是说兵力不足。如果从后方内地再调兵增援,那时间又来不及。(刘备集团此时在益州的总兵力大体在11万,刘备带走5万,依然有6万留守)4、时间的紧迫。曹操当年七月进占汉中,消息很快报告给江陵的刘备,刘备立即与孙权达成和平协议返回,这个时间间隔其实是很短暂的,并不像某些学者认为的那样有数月之久。这一点有两个证明:——孙权的主力在与刘备和解之后,马上集结了十万兵力,进攻合肥,此时是八月。也就是说,与刘备、曹操争夺汉中关系较小的孙权,都能够在不到一个月的时间里,准备十万大军从益阳等地开到合肥前线作战,那么面临生死存亡的刘备,其返回必然是更加快速。因此,至少在八月,刘备的主力,最起码是刘备带领的中军已经返回了成都一带。——《傅子》记载:居七日,蜀降者说:“蜀中一日数十惊,备虽斩之而不能安也。”太祖延问晔曰:“今尚可击不?”晔曰:“今已小定,未可击也。”——大家都注意到了这个记载中“蜀中一日数十惊”,却没有注意到刘晔认为七天之后,这个机会就已经过去了。那么试问,谁家的大军能够在七天中从汉中经过剑阁天险进军益州内地?因此,这也证明,所谓的时机其实很短暂,根本不足以使大军准备好进行一次重大的战役。从南郑(曹操大军集结地)到剑阁,里程大致为215千米,合490汉里,而且都是艰难的山路。而且大军出动,也不是说走就走的,需要一定的准备时间。因此,很可能曹军做好准备出发还没有到达剑阁,人家蜀地就已经安定好了。——我们还要注意到,《傅子》这个记载中,有“备虽斩之而不能安”,这说明,此时很可能刘备本人已经快速返回了成都。我们知道,刘备本人返回,并不需要和数万大军同时,他是可以先快速返回的。由于刘备去荆州时带领了五万部队,那么留守在益州的部队其实依然有六万以上(虽然可能不是精锐,但是依托险要死守还是管用的)。5、不论是刘晔的建议,还是司马懿的主张,都有一个相同的前提:就是益州自己被曹军的声势所吓倒,自行崩溃瓦解,而不是依靠曹军自身的作战。——“蜀人望风,破胆失守,推此而前,蜀可传檄而定”(刘晔语)——“益州震动,进兵临之,势必瓦解”(司马懿语)但是,这样一来,就等于把如此大规模的一次战役行动成功的希望,完全寄托在敌人自动瓦解之上,这是很不合理的。如果敌人不自动瓦解,那么曹军并没有任何的后续手段,甚至很可能深陷于茫茫山路之中,粮草不济,战拿不下险关,退已经不能全身的境地。6、汉中新附,并不稳固,如果大军离开,也有后顾之忧。而且深入益州腹地,远离中原,一旦后方有事,救援不及。这些,都是作为统帅需要全盘考虑的问题。因此,我以为,在当时的情况下,曹操的决策是稳妥和正确的,而刘晔、司马懿的意见虽然有一定的道理,但是比较片面,是不足取的。

六、 曹操为何不走秦岭谷道而要强攻阳平关?阳平关是汉中西面的门户,也是汉中西面最后的险要所在,通过阳平关向东,就进入了汉中盆地,无险可守了。但是阳平关的地形是非常有利于防御的。这里南、北二山相距很近,山势险峻,易守难攻,两侧翼则多是高山峻岭,丛林密布,没有道路。因此,我们看历史上,从关中进攻汉中的作战,绝大多数是走秦岭的谷道。即使秦岭谷道艰难,但是依然如此。三国时期,在阳平关发生过数次攻防作战,其中曹操和刘备的进攻是从西向东,而钟会的进攻则是相反,是从东向西攻关的。曹操在强攻失利之后,用计夜袭,才取得成功,而刘备则一味强攻,虽然兵力优势,但是依然不能夺取阳平关。反观钟会,则很轻易地就攻占了阳平关,虽然有蜀将先投降的影响,但是阳平关西侧险要、东侧并不利于防御的特点也显现出来。否则,以傅佥的忠勇善战,怎么一下子就失守关城了呢?而纵观整个三国时期,魏国却只有这一次是从阳平关外面强攻的,其余则无一例外是走那秦岭中艰难、漫长的峡谷来进攻汉中。——曹真进攻汉中,主力是走子午道、褒斜道,偏军出武都(《三国志》误写为武威)、上庸。——曹爽进攻汉中,走的是骆谷道;——钟会进攻汉中,则是由斜谷、骆谷和魏兴逆汉水进击。直到宋朝以前,从关中南下攻打汉中,也基本是走秦岭谷道而不强攻阳平关。那么为什么曹操是唯一一个强攻阳平关的呢?(刘备除外,因从成都来只能攻阳平关)答案在下面:——《魏名臣奏》载董昭表曰:武皇帝承凉州从事及武都降人之辞,说张鲁易攻,阳平城下南北山相远,不可守也,信以为然。及往临履,不如所闻,乃叹曰:“他人商度,少如人意。”从这段记载,我们得知,原来是曹操在决定进攻汉中的路线时,被假情报所蒙蔽。曹操的部下凉州从事以及武都投降过来的人都告诉曹操:阳平关下的南、北两山相拒很远,是不利于防守的地方。如果阳平关下南北两山确实相拒很远,那么其中间必然有很宽的平坦地带适合进攻。因此,曹操相信了这个假情报,才决定不走秦岭谷道而走陈仓道攻打阳平关的。但是,等曹操亲自到达阳平关一看,发现根本不是那么回事,这里南北两山相拒很近,而且山势很险峻,因此才在猛攻数日之后就打算撤军了。因此,这就解释了为何整个这段历史时期,从关中攻打汉中,只有曹操是攻阳平关的。这只是一个因情报错误导致的决策失误。故而此后进攻汉中,依然是要走秦岭的各个谷道进兵。