第一次北伐的失敗,沒有使諸葛亮喪失統一的信心。他重新整頓軍隊,補充糧草,準備再次出師北伐。這時,他接到書信,得知勇將趙雲因病身亡,不禁痛哭流涕,悲傷不已,大聲說道:“子龍身故,國家損一棟梁,我失去了一隻臂膀啊!”之後,諸葛亮上表《後出師表》給後主,領幾十萬精兵,再度北伐。
在《後出師表》中,諸葛亮對後主進言說:
先帝慮漢、賊不兩立,王業不偏安,故托臣以討賊也。以先帝之明,量臣之才,固知臣伐賊,才弱敵強也。然不伐賊,王業亦亡。惟坐而待亡,孰與伐之?是故托臣而弗疑也。
臣受命之日,寢不安席,食不甘味。思惟北征。宜先入南。故五月渡瀘,深入不毛,並日而食;臣非不自惜也,顧王業不可得偏安於蜀都,故冒危難,以奉先帝之遺意也,而議者謂為非計。今賊適疲於西,又務於東,兵法乘勞,此進趨之時也。謹陳其事如左:
高帝明並日月,謀臣淵深,然涉險被創,危然後安。今陛下未及高帝,謀臣不如良、平,而欲以長策取勝,坐定天下,此臣之未解一也。
劉繇、王朗各據州郡,論安言計,動引聖人,群疑滿腹,眾難塞胸,今歲不戰,明年不征,使孫策坐大,遂並江東,此臣之未解二也。
曹操智計,殊絕於人,其用兵也,仿佛孫、吳,然困於南陽,險於烏巢,危於祁連,逼於黎陽,幾敗北山,殆死潼關,然後偽定一時耳。況臣才弱,而欲以不危而定之,此臣之未解三也。曹操五攻昌霸不下,四越巢湖不成,任用李服而李服圖之,委任夏侯而夏侯敗亡,先帝每稱操為能,猶有此失,況臣駑下,何能必勝?此臣之未解四也。
自臣到漢中,中間期年耳,然喪趙雲、陽群、馬玉、閻芝、丁立、白壽、劉郃、鄧銅等及曲長、屯將七十餘人,突將、無前、賨叟、青羌、散騎、武騎一千餘人。此皆數十年之內所糾合四方之精銳,非一州之所有;若複數年,則損三分之二也,當何以圖敵?此臣之未解五也。
今民窮兵疲,而事不可息;事不可息,則住與行勞費正等。而不及今圖之,欲以一州之地,與賊持久,此臣之未解六也。
夫難平者,事也。昔先帝敗軍於楚,當此時,曹操拊手,謂天下以定。然後先帝東連吳越,西取巴蜀,舉兵北征,夏侯授首,此操之失計,而漢事將成也。然後吳更違盟,關羽毀敗,秭歸蹉跌,曹丕稱帝。凡事如是,難可逆見。臣鞠躬盡瘁,死而後已。至於成敗利鈍,非臣之明所能逆睹也。
在《後出師表》中,諸葛亮結合蜀魏敵不兩立及敵強我弱的嚴峻事實,針對大臣們對再次北伐的異議,向後主闡明北伐不僅是為實現先帝的遺願,更是為了蜀漢的生死存亡。
當年冬天,曹魏大將曹休所率的軍隊在石亭(安徽潛山縣東北)被吳軍打敗,魏軍主力大部分前往解救曹休,關中空虛。諸葛亮趁機率軍從散關(今陝西寶雞南)出發,包圍陳倉(寶雞東)。散關和陳倉之間有一處地勢險峻的綏陽小穀,穀中溪水湍急,因此大軍行進非常困難。
當時陳倉由魏將郝昭、王雙負責防守,防衛森嚴。不管蜀軍如何挑釁,都拒不應戰。諸葛亮便與部屬商議對策,因為陳倉地勢險峭,運輸不易,而蜀軍所帶的軍糧連一個月都維持不了。部將們都認為事不宜遲,應該強攻,以免拖延時日,耗費糧食。於是諸葛亮便利用雲梯(春秋時公輸般所發明的攻城之具。把底下以木塊為墊,裝有輪子的雲梯車的四周用生牛皮圍起,以防敵軍的箭矢;裏頭裝有雲梯、飛梯兩種,攻到城下時,便將飛梯駕於雲梯之上,士兵便可以爬上去攻城)、衝車(兵車的一種,以甲覆馬,以鐵包軸,用來衝鋒陷陣)為前鋒,讓士兵爬上城去。
魏帝又派張郃帶兵支援陳倉。當他到達陳倉時,諸葛亮已因糧食不足,引兵而退。魏軍的另一名大將王雙,卻在陳倉與蜀將魏延戰鬥,王雙攻勢猛烈,魏延無法脫身與諸葛亮的主力軍會合。諸葛亮便派人給魏延送去一計,魏延按照諸葛亮的計策,先派士兵埋伏在王雙的營賬附近,然後帶著剩餘士兵,連夜拔營趕回漢中。
王雙得知魏延逃走後,便立刻帶著人馬追擊,這正好中了諸葛亮的計謀。這時,埋伏的士兵點燃了魏軍的營帳,王雙一見後麵一片火光,趕緊下令撤退,奔回山坡左側時被魏延追到。魏軍以為該處有埋伏,大軍潰散,紛紛逃命。
陳倉之役,不能一舉破敵,最主要的原因在於關山阻隔,補給不易。這也是諸葛亮在北伐中的遇到的最難解決的問題。
建興七年(229年),孫權稱帝,吳蜀訂盟。
建興九年(231年)春,諸葛亮發動第三次北伐戰爭。他率大軍進攻祁山,在西城大敗魏軍,射殺張郃。六月,蜀軍因糧盡退兵。
為了解決北伐中的軍糧供給問題,諸葛亮命令軍隊在當地屯田。這時,又出現了一個問題,糧草數量巨大,搬運不便,需要耗費眾多人力牛馬。
諸葛亮早想到這個問題,他很久以前就令部下積存木料,並購買了許多木料。原來他想製作“木牛流馬”,用這些“牛馬”運輸糧草非常便利,因為它們全都不用飲水吃草,還可晝夜運輸,也很輕便。將士們都沒有聽過這種東西,更不知道如何製作了。
諸葛亮說:“我已經畫好圖樣,讓人照圖製作了。我現在把製作‘木牛流馬’的方法告訴大家。”
過了幾天,“木牛流馬”造好了,竟像活的一樣。諸葛亮命部將駕著“木牛流馬”搬運糧草,補給軍需。