公元228年冬,諸葛亮在第一次北伐失敗不到一年以後,就再次出師北伐。這一次諸葛亮出散關,改走陳倉道進軍。根據《三國志·曹真傳》記載,曹真在諸葛亮第一次北伐以後,預估蜀軍可能會走陳倉道,所以命將軍郝昭、王生在此駐守,並加固城防。結果蜀軍果然從此進兵。由於魏軍有備,蜀軍攻城不克,最後糧盡退兵。
(曹)真以亮懲於祁山,後出必從陳倉,乃使將軍郝昭、王生守陳倉,治其城。明年春,亮果圍陳倉,已有備而不能克。《三國志·曹真傳》
不過有趣的是,在《三國志·諸葛亮傳》中提到,諸葛亮兵出散關圍困陳倉時,曹真親自率兵前來救援,和蜀軍對峙。
(建興六年)冬,亮復出散關,圍陳倉,曹真拒之,亮糧盡而還。
而《三國志》其他地方,包括《曹真傳》中都沒有提及此事,只有《張郃傳》中提到張郃奉命前去救援陳倉,那麼當時曹真到底有沒有去迎擊蜀軍呢?下面我們就來分析一二。
根據《張郃傳》記載,在諸葛亮第二次北伐前,曹叡命司馬懿在荊州整頓水軍,準備經沔水入長江伐吳。為此曹叡還特地命張郃督軍前往荊州,受司馬懿的節制,共同伐吳。只是此時恰逢冬天水淺,大船無法航行,於是張郃暫時率軍屯駐方城。此時諸葛亮突然出兵陳倉,並發起猛攻。曹叡急忙將張郃召回京師,調撥給他南北軍三萬,趕去救援陳倉。
司馬宣王治水軍於荊州,欲順沔入江伐吳,詔郃督關中諸軍往受節度。至荊州,會冬水淺,大船不得行,乃還屯方城。諸葛亮復出,急攻陳倉,帝驛馬召郃到京都。
從這段記述看,諸葛亮兵臨陳倉發起進攻時,張郃還在荊州。而且文中提到諸葛亮是「急攻陳倉」,那麼前線局勢應該比較危急。而陳倉城內只有一千多守軍,一旦蜀軍突破魏軍防禦,突入關中,那麼局勢就比較麻煩了。更何況《通典》中還提到諸葛亮分兵攻打郿縣等處,顯然曹叡在等張郃從荊州趕回來前,不大可能什麼事都不做,很可能派曹真先行前往關中,整頓魏軍迎擊蜀軍。
此外在《張郃傳》中還提到,在張郃帶兵出發前,曹叡曾經問他等到援兵趕到時,諸葛亮會不會已經拿下陳倉。張郃估計蜀軍缺糧,不能久攻,於是回答說估計諸葛亮的軍糧最多還能支撐十天,不等自己帶兵趕到,蜀軍已經撤走。之後果然不等張郃率軍趕到,蜀軍就已經退走。
(張)郃知亮縣軍無谷,不能久攻,對曰:「比臣未到,亮已走矣;屈指計亮糧不至十日。」
而就在蜀軍撤退時,魏將王雙帶領騎兵前去追擊,結果卻被諸葛亮擊敗,王雙被斬。
魏將王雙率騎追亮,亮與戰,破之,斬雙。
很多人認為這裡的王雙,其實就是和郝昭一起守陳倉的王生。一個人有別名,或者是寫史書時名字出錯,確實都可能發生,不排除王生就是王雙的可能。然而即使王雙就是王生,陳倉城內也不過一千多人,這麼點守軍最多也就能湊出兩三百騎兵。而蜀軍起碼有數萬之眾,郝昭也是一代名將,不大可能讓王生只帶着幾百騎兵就去追擊數萬蜀軍。
事實上按照蜀軍北伐的兵力,魏軍既然敢追擊,幾千騎兵應該是有的。魏軍能集中起幾千騎兵,在前線的兵力應該也有數萬之眾。歷史上可不像《三國演義》里那樣,大家動輒就能拉出幾十萬大軍,有幾萬人就已經是大規模的戰事了。
既然張郃趕到前,陳倉一線已經集結了那麼多部隊,那麼曹叡肯定已經派遣一個級別相當高的統帥到關中統一調度軍隊,增援陳倉。考慮到此前和此後,主持關中軍事的都是曹真,當時曹真應該就已經在關中,並指揮大軍到了陳倉。
所以綜合來看,諸葛亮圍困陳倉時,曹叡一面從荊州調回張郃,一面已經命曹真趕到關中,調集人馬去迎擊蜀軍。那麼《曹真傳》為什麼隻字不提此事呢?
《三國志》是一部紀傳體史書,書中以每個歷史人物的傳記來記述歷史。這種體裁的好處是能更好地描述每個歷史人物。不過由於一個歷史事件可能不止一個人參與,所以給一個人立傳時往往誇勝諱敗,主要敘述他的功績,對於那些敗仗,只要不是對其本人和歷史有太大的影響,那麼往往只在別人的傳記中提及。
比如說張飛和張郃的宕渠之戰,《張郃傳》中只提到張郃攻取巴東、巴西二郡,將兩地居民遷到漢中,然後在宕渠被張飛所阻。而在《張飛傳》中,則詳細地描述了張飛如何殺了張郃一個全軍覆沒。
具體到曹真在諸葛亮第二次北伐時的表現,他雖然準確預判了諸葛亮會兵出陳倉,並提前做好了準備。可是兩軍實際接觸以後,他並沒有取得太多戰果,反而在追擊蜀軍時損失不小。而且隨後諸葛亮又趁他不備,突然襲取了陰平、武都兩郡,曹真這次和諸葛亮的交手中,其實挺失敗的。陳壽隱而不提,也就不奇怪了。