蜀汉首次北伐曹魏的军事行动因街亭之战的失败草草收场,同年8月,与蜀汉联盟的孙吴在东南战场的石亭之战中重创曹魏。为了牵制曹魏兵力,策应孙吴扩大战果,诸葛亮于年底再度兴师,率军走陈仓道北伐。按照主流史料的记载,蜀汉军队抵达陈仓道北端后,面对曹魏将领郝昭镇守的陈仓县却久攻不下,只能退兵,再度折戟沉沙。这一场陈仓之战也成为诸葛亮军事能力被诟病的症结所在。事实果真如此吗?
有关诸葛亮攻打陈仓的过程,三国志、魏略、三国寰宇记等都有记载,影响最大的当属三国志和魏略,说法被三国演义采纳,流传甚广。根据三国志可知,当时总览曹魏西北军务的大都督曹真,认为诸葛亮北伐必攻陈仓县,所以任命郝昭提前修缮陈仓县的城池。但魏略提到郝召的兵力只有千人,这就和三国志有矛盾的地方,因为诸葛亮的兵力有数万之众,按照正常逻辑,曹真既然早有预料,就不该只留千人镇守陈仓,不然就是极大的军事破绽。以此推测,曹真并没有三国志所述的那般算无遗策,也没有特别重视陈仓,郝昭之所以修缮陈仓,应当只是曹魏西北整个战线中的一环,只是由于后续陈仓爆发了大战,才格外引人注目。
这从郝昭的身份也能得到佐证,陈仓之战前,郝昭只是曹魏西北方面的杂号将军之一,记载中的战争经历只有两次平叛,还不是主将,履历和他差不多的曹魏将领不乏其人,很难想象曹真,在没有任何理由的情况下,会只给于少量兵力,对他委以重任。由此可见,诸葛亮率军进攻陈仓县是一次出其不意的军事突袭,郝昭也是临时被推上了历史前台。据魏略描述诸葛亮听说郝昭在守城,大吃一惊,实在过于夸张。郝昭本来就是曹魏长期活跃在西北的将领,之前并无出挑表现,而且以诸葛亮之老道,陈仓县的守将和兵力必然早就调查清楚了,没必要忌惮。
蜀汉强攻城池,这段战争魏略描写得非常精彩:蜀汉军队先用云梯冲车进行攻击,但被郝昭用火箭烧毁云梯,用绳子绑着石磨砸毁冲车,蜀汉填平护城河,直接攀上城楼,郝昭马上在城内筑起第二道城墙,蜀汉军队转而开挖地道,结果被郝昭在城内横挖拦截堵起来,有一种兵来将挡,水来土掩的既视感,但真实性有待考证。一方面,冲车等攻城机械体积巨大,短期内搬运过整个蜀道秦岭是不可能的,只能就地建造,另一方面,陈仓攻防战从头到尾只经过了20多天,在短短20天中,诸葛亮不断制造新的攻城器械,郝昭边守城边修建内墙,双方还得一起挖掘地道攻防,显然密度过大,条件太过苛刻。
三国时期,攻坚战异常艰难,比如东汉末年凉州羌乱,十余万叛军包围陈仓近三个月都毫无进展。另外,曹操攻邺城时攻了半年,曹仁守江陵整整一年,马超攻冀城攻了七个月。其他诸如张特、朱然、罗宪等将领守城基本在半年以上。郝昭守城20多天只能说是当时的平均线,并无特别值得夸耀之处。诸葛亮要是铁了心要拿下陈仓,至少要坚持等曹魏主力大军到来再做计划,绝不会只过了20多天就退兵。实际上,诸葛亮北伐的主要目的,本就不是攻下陈仓,他在写给哥哥诸葛瑾的信里明言自己开凿小路。前往陈仓主要是为了吸引曹魏兵力,使之不能分兵对付孙吴。
曹魏大将张郃当时准备跟着司马懿南下讨伐孙吴,因为诸葛亮的进攻,曹睿紧急征召张郃到洛阳问策,张郃认为诸葛亮的粮草不足,不久蜀汉军队就会主动撤退。这可以解释陈仓之战前后,曹魏援军迟缓,匪夷所思的救援速度。要知道,关中地区是一片平原地区,最适合曹魏骑兵的机动,而从长安到陈仓也有渭水连通,可以利用漕运的便利。在这种情况之下,曹魏支援陈仓居然足足花了20天的时间。换言之,张郃看出了诸葛亮在故意吸引曹魏兵力。张郃认为,年初诸葛亮刚发动了一次北伐,到年底期间只有一次秋收作为补给,所以粮草无法支撑,见识颇有见地,但也只猜对了一半。
诸葛亮在11月出兵,12月到达陈仓,围城20多天,到次年正月退兵,三月到达了武都郡建威县。陈仓和汉中相距400多里,建威和汉中同样相距400多里,沿途多是崇山峻岭。因此,在蜀汉建兴七年正月至三月,诸葛亮率领蜀汉军队来回走了1000多里的山路。如此艰巨的行动,自然不会是临时起意,需要时间动员兵力,规划后勤。蜀汉军队也并不像张郃猜测的那样缺乏粮草。诸葛亮没有先退往汉中,休整后再进攻武都,这样做时间来不及,而是在成功吸引曹魏援军来陈仓后。在撤退途中击杀了曹魏追兵,然后迅速调转枪头直接进攻武都郡。魏军因为没有料到这一变化而被困在中间的山道上,来不及支援,最后只能眼看着武都、阴平二郡被诸葛亮拿下。整个军事计划紧张而又缜密,这才是诸葛亮的军事水准和风格。
郝昭虽然击退了诸葛亮,但三国志并未大肆宣扬奇人奇事,待遇亦如其他曹魏西北杂号将军。而真正让郝昭名声鹊起的魏略,则是曹魏学者鱼豢编撰的私史。魏略中不少记载的真实性都没有经过严格的考究,存在谬误,比如刘禅被拐走,三顾茅庐不存在等等。而只有20多天的攻城战终究不是具有决定性意义的重大战役,连一向喜欢夸大其词的曹魏官方对此都并未加以渲染,可见对此战的真实态度,而以这样一场战争来评判诸葛亮的军事能力,当然也是有失偏颇的。