第一次北伐的失败,没有使诸葛亮丧失统一的信心。他重新整顿军队,补充粮草,准备再次出师北伐。这时,他接到书信,得知勇将赵云因病身亡,不禁痛哭流涕,悲伤不已,大声说道:“子龙身故,国家损一栋梁,我失去了一只臂膀啊!”之后,诸葛亮上表《后出师表》给后主,领几十万精兵,再度北伐。

在《后出师表》中,诸葛亮对后主进言说:

先帝虑汉、贼不两立,王业不偏安,故托臣以讨贼也。以先帝之明,量臣之才,固知臣伐贼,才弱敌强也。然不伐贼,王业亦亡。惟坐而待亡,孰与伐之?是故托臣而弗疑也。

臣受命之日,寝不安席,食不甘味。思惟北征。宜先入南。故五月渡泸,深入不毛,并日而食;臣非不自惜也,顾王业不可得偏安于蜀都,故冒危难,以奉先帝之遗意也,而议者谓为非计。今贼适疲于西,又务于东,兵法乘劳,此进趋之时也。谨陈其事如左:

高帝明并日月,谋臣渊深,然涉险被创,危然后安。今陛下未及高帝,谋臣不如良、平,而欲以长策取胜,坐定天下,此臣之未解一也。

刘繇、王朗各据州郡,论安言计,动引圣人,群疑满腹,众难塞胸,今岁不战,明年不征,使孙策坐大,遂并江东,此臣之未解二也。

曹操智计,殊绝于人,其用兵也,仿佛孙、吴,然困于南阳,险于乌巢,危于祁连,逼于黎阳,几败北山,殆死潼关,然后伪定一时耳。况臣才弱,而欲以不危而定之,此臣之未解三也。曹操五攻昌霸不下,四越巢湖不成,任用李服而李服图之,委任夏侯而夏侯败亡,先帝每称操为能,犹有此失,况臣驽下,何能必胜?此臣之未解四也。

自臣到汉中,中间期年耳,然丧赵云、阳群、马玉、阎芝、丁立、白寿、刘郃、邓铜等及曲长、屯将七十余人,突将、无前、賨叟、青羌、散骑、武骑一千余人。此皆数十年之内所纠合四方之精锐,非一州之所有;若复数年,则损三分之二也,当何以图敌?此臣之未解五也。

今民穷兵疲,而事不可息;事不可息,则住与行劳费正等。而不及今图之,欲以一州之地,与贼持久,此臣之未解六也。

夫难平者,事也。昔先帝败军于楚,当此时,曹操拊手,谓天下以定。然后先帝东连吴越,西取巴蜀,举兵北征,夏侯授首,此操之失计,而汉事将成也。然后吴更违盟,关羽毁败,秭归蹉跌,曹丕称帝。凡事如是,难可逆见。臣鞠躬尽瘁,死而后已。至于成败利钝,非臣之明所能逆睹也。

在《后出师表》中,诸葛亮结合蜀魏敌不两立及敌强我弱的严峻事实,针对大臣们对再次北伐的异议,向后主阐明北伐不仅是为实现先帝的遗愿,更是为了蜀汉的生死存亡。

当年冬天,曹魏大将曹休所率的军队在石亭(安徽潜山县东北)被吴军打败,魏军主力大部分前往解救曹休,关中空虚。诸葛亮趁机率军从散关(今陕西宝鸡南)出发,包围陈仓(宝鸡东)。散关和陈仓之间有一处地势险峻的绥阳小谷,谷中溪水湍急,因此大军行进非常困难。

当时陈仓由魏将郝昭、王双负责防守,防卫森严。不管蜀军如何挑衅,都拒不应战。诸葛亮便与部属商议对策,因为陈仓地势险峭,运输不易,而蜀军所带的军粮连一个月都维持不了。部将们都认为事不宜迟,应该强攻,以免拖延时日,耗费粮食。于是诸葛亮便利用云梯(春秋时公输般所发明的攻城之具。把底下以木块为垫,装有轮子的云梯车的四周用生牛皮围起,以防敌军的箭矢;里头装有云梯、飞梯两种,攻到城下时,便将飞梯驾于云梯之上,士兵便可以爬上去攻城)、冲车(兵车的一种,以甲覆马,以铁包轴,用来冲锋陷阵)为前锋,让士兵爬上城去。

魏帝又派张郃带兵支援陈仓。当他到达陈仓时,诸葛亮已因粮食不足,引兵而退。魏军的另一名大将王双,却在陈仓与蜀将魏延战斗,王双攻势猛烈,魏延无法脱身与诸葛亮的主力军会合。诸葛亮便派人给魏延送去一计,魏延按照诸葛亮的计策,先派士兵埋伏在王双的营账附近,然后带着剩余士兵,连夜拔营赶回汉中。

王双得知魏延逃走后,便立刻带着人马追击,这正好中了诸葛亮的计谋。这时,埋伏的士兵点燃了魏军的营帐,王双一见后面一片火光,赶紧下令撤退,奔回山坡左侧时被魏延追到。魏军以为该处有埋伏,大军溃散,纷纷逃命。

陈仓之役,不能一举破敌,最主要的原因在于关山阻隔,补给不易。这也是诸葛亮在北伐中的遇到的最难解决的问题。

建兴七年(229年),孙权称帝,吴蜀订盟。

建兴九年(231年)春,诸葛亮发动第三次北伐战争。他率大军进攻祁山,在西城大败魏军,射杀张郃。六月,蜀军因粮尽退兵。

为了解决北伐中的军粮供给问题,诸葛亮命令军队在当地屯田。这时,又出现了一个问题,粮草数量巨大,搬运不便,需要耗费众多人力牛马。

诸葛亮早想到这个问题,他很久以前就令部下积存木料,并购买了许多木料。原来他想制作“木牛流马”,用这些“牛马”运输粮草非常便利,因为它们全都不用饮水吃草,还可昼夜运输,也很轻便。将士们都没有听过这种东西,更不知道如何制作了。

诸葛亮说:“我已经画好图样,让人照图制作了。我现在把制作‘木牛流马’的方法告诉大家。”

过了几天,“木牛流马”造好了,竟像活的一样。诸葛亮命部将驾着“木牛流马”搬运粮草,补给军需。