諸葛亮第一次進攻中原敗回漢中以後,認真總結了這次失敗的教訓。他認為:馬謖失守街亭是導致這次失敗的主要原因。所以,用兵打仗,不在兵員數量的大小,而主要看將帥的才能。如果自己不用馬謖,就不會出現這樣前功盡棄的失敗結果。得出這樣一個結論後,諸葛亮便在蜀中加強對軍隊將領的訓練,等待時機成熟後,再進攻中原。
蜀國的準備情況,早被魏國偵探摸得清清楚楚,並一一向魏主曹睿作了彙報。曹睿覺得蜀國是當前的頭號敵人,一定要想辦法消滅了蜀國後,才能過上安穩日子,便傳詔請司馬懿上朝,討論如何收複西川。司馬懿聽了曹睿的話,對曹睿說道:“皇上,依我的看法,目前攻蜀,還不是時候。現在正是盛夏,天氣炎熱,西川是個大盆地,地勢低而氣候濕熱,蜀兵不會出來攻我們的;如果我軍進入蜀地發動進攻,對方隻要在險要的地方駐守少量軍隊,我們便攻不下來,所以目前不能進攻。”
曹睿問:“如果蜀兵反過來進攻我們,那怎麼辦呢?”司馬懿笑笑道:“天氣一轉涼,諸葛亮勢必又要準備進攻我們。這一次諸葛亮進攻中原,肯定會學習當年劉邦的計策,表麵上修複棧道,看起來要從劍閣的棧道進兵,實際上卻從陳倉進兵,攻我中原。現在隻需要一員大將守住陳倉,便可阻住蜀兵的進攻。”曹睿問道:“你看,現在有哪個大將能擔當起守陳倉、阻蜀兵的重任呢?”司馬懿道:“目前有一個現成的人,這個人姓郝名昭,字伯道,精通戰略戰術,善於用兵。派郝昭在陳倉修築城池,完全可以擋住諸葛亮的進攻。”曹睿問:“郝昭現在何處?”司馬懿答:“現在是雜號將軍,鎮守河西。”曹睿立即下詔,封郝昭為鎮西將軍,命令他把守陳倉道口。
當年秋天,諸葛亮果然又發大兵三十萬,出陳倉道口,進攻中原。司馬懿早已探明了蜀兵的行動,立即奏報魏主曹睿,曹睿大會文武百官,商量怎樣再次打退蜀兵。大將軍曹真自告奮勇,願領兵抗蜀。曹真又保舉大將王雙作先鋒,曹睿一一同意。曹真帶著副手郭淮、大將張郃,命王雙為先鋒,率十五萬大軍,分頭守住各路關卡。
諸葛亮大軍果然如司馬懿斷定的那樣,來到陳倉道口,見陳倉道口已經築城守衛,便決定攻下陳倉,再占據街亭,由此進兵中原。諸葛亮認為:大軍行動,必須有糧草保證供應,如果糧路不能暢通無阻,勝利的希望就丟掉一半。所以,諸葛亮千方百計地要保證運糧道路暢通,這也就是司馬懿掌握諸葛亮用兵特點的主要根據。
現在,在諸葛亮進軍的必經之路陳倉道口築起了一座城池,不拔掉它,軍隊就不能前進,諸葛亮把這個任務交給了魏延。魏延連攻了好幾天,也沒攻下城來。諸葛亮又派郝昭的同鄉好友靳祥進城去勸郝昭投降。郝昭不但不投降,還把他一頓臭罵趕出城外。諸葛亮氣得大發雷霆,命令:“不等他救兵來到,給我全速攻城,豎起一百架雲梯,每個雲梯上站立十人,雲梯周圍用木板護起,聽軍中鼓響,一起攻城!”
郝昭在城中也作了全麵動員,要求全體守城軍士,誓死不讓蜀兵進城。郝昭看到蜀兵正在組裝雲梯,命令三千士兵,每人拿著火箭,靠在城牆垛後麵,蜀軍的雲梯一靠近城牆,就用火箭射擊。結果攻城士兵大多數被燒死,雲梯也被燒毀。諸葛亮又改用“衝車”,同樣不行;又從地底下挖地道,郝昭也在城內挖了一圈地道,放水淹去,蜀兵仍然進不了城。一連二十多天,蜀兵就是進不了城,氣得諸葛亮無可奈何。不多天,曹真派出的先鋒將軍王雙又帶領二萬人馬來到,在陳倉城外駐紮,蜀兵更加無力突破魏兵防線。
曹真領兵出征後,司馬懿對魏主曹睿說:“皇上,當年我料定孔明這次出兵,肯定要從陳倉進兵,所以我留下郝昭在陳倉守住,我還將如何與諸葛亮對仗的計策告訴了郝昭,隻要郝昭照計行事,一定會擋住蜀兵的,現在果然不錯。諸葛亮用兵,極其穩妥,總要考慮好運送糧草的道路。從陳倉到街亭,這是一條大路,運送糧草非常方便,其他小路,搬運糧草艱難。現在,郝昭、王雙二人守住陳倉,諸葛亮無法從這條路運糧,大兵也不敢冒進,我算定了蜀兵糧草頂多隻夠一個月的用度。皇上您可傳詔令曹真不要出戰,隻是堅守,不足一個月,蜀兵必定要退走,那時乘機追擊,一定會大獲全勝!”