诸葛亮平定南中之后,又经过两年准备,公元227年冬天,就带领大军驻守汉中。因为汉中接近魏、蜀的边界,在那里可以随时找机会进攻魏国。离开成都的时候,他给后主刘禅上了一道奏章,要后主不要满足现状,妄自菲薄;要亲近贤臣,疏远小人;并且表示他决心担负起兴复汉朝的责任。这道奏章就是历史上有名的《出师表》。过了年,诸葛亮采用声东击西的办法,传出消息,要攻打郿城(今陕西眉县),并且派大将赵云带领一支人马,进驻箕谷(今陕西褒城北),装出要攻打郿城的样子。魏军得到情报,果然把主要兵力去守郿城。诸葛亮趁魏军不防备,亲自率领大军,突然从西路扑向祁山(今甘肃礼县东)。蜀军经过诸葛亮几年严格训练,阵容整齐,号令严明,士气十分旺盛。自从刘备死后,蜀汉多年没有动静,魏国毫无防备,这次蜀军突然袭击祁山,守在祁山的魏军抵挡不了,纷纷败退。蜀军乘胜进军,祁山北面天水、南安、安定三个郡的守将都背叛魏国,派人向诸葛亮求降。那时候,魏文帝曹丕已经病死。魏国朝廷文武官员听到蜀汉大举进攻,都惊慌失措。刚刚即位的魏明帝曹叡(音ruì)比较镇静,立刻派张郃带领五万人马赶到祁山去抵抗,还亲自到长安去督战。诸葛亮到了祁山,决定派出一支人马去占领街亭(今甘肃庄浪东南),作为据点。让谁来带领这支人马呢。当时他身边还有几个身经百战的老将。可是他都没有用,单单看中参军马谡。马谡这个人确是读了不少兵书,平时很喜欢谈论军事。诸葛亮找他商量起打仗的事来,他就谈个没完,也出过一些好主意。因此诸葛亮很信任他。但是刘备在世的时候,却看出马谡不大踏实。他在生前特地叮嘱诸葛亮,说:“马谡这个人言过其实,不能派他干大事,还得好好考察一下。”但是诸葛亮没有把这番话放在心上。这一回,他派马谡当先锋,王平做副将。 马谡和王平带领人马到了衔亭,张郃的魏军也正从东面开过来。马谡看了地形,对王平说:“这一带地形险要,街亭旁边有座山,正好在山上扎营,布置埋伏。”王平提醒他说:“丞相临走的时候嘱咐过,要坚守城池,稳扎营垒。在山上扎营太冒险。”马谡没有打仗的经验,自以为熟读兵书,根本不听王平的劝告,坚持要在山上扎营。王平一再劝马谡没有用,只好央求马谡拨给他一千人马,让他在山下临近的地方驻扎。张郃率领魏军赶到街亭,看到马谡放弃现成的城池不守,却把人马驻扎在山上,暗暗高兴,马上吩咐手下将士,在山下筑好营垒,把马谡扎营的那座山围困起来。马谡几次命令兵士冲下山去,但是由于张郃坚守住营垒,蜀军没法攻破,反而被魏军乱箭射死了不少人。魏军切断了山上的水源。蜀军在山上断了水,连饭都做不成,时间一长,自己先乱了起来。张郃看准时机,发起总攻。蜀军兵士纷纷逃散,马谡要禁也禁不了,最后,只好自己杀出重围,往西逃跑。王平带领一千人马,稳守营盘。他得知马谡失败,就叫兵士拼命打鼓,装出进攻的样子。张郃怀疑蜀军有埋伏,不敢逼近他们。王平整理好队伍,不慌不忙地向后撤退,不但一千人马一个也没损失,还收容了不少马谡手下的散兵。街亭失守。蜀军失去了重要的据点,又丧失了不少人马。诸葛亮为了避免遭受更大损失,决定把人马全部撤退到汉中。诸葛亮回到汉中,经过详细查问,知道街亭失守完全是由于马谡违反了他的作战部署。马谡也承认了他的过错。诸葛亮按照军法,把马谡下了监狱,定了死罪。 马谡自己知道免不了一死,在监狱里给诸葛亮写了封信,说:“丞相平日待我像待自己的儿子一样,我也把丞相当作自己父亲。这次我犯了死罪,希望我死以后,丞相能够像舜杀了鲧还用禹一样,对待我的儿子,我死了也没牵挂了。”诸葛亮杀了马谡,想起他和马谡平时的情谊,心里十分难过,流下了眼泪。以后,他真的把马谡的儿子照顾得很好。诸葛亮认为王平在街亭曾经劝阻过马谡,在退兵的时候,又用计保全了人马,立了功,应该受奖励,就把王平提拔为参军,让他统率五部兵马。诸葛亮对将士们说:“这次出兵失败,固然是因为马谡违反军令。可是我用人不当,也应该负责。”他就上了一份奏章给刘禅,请求把他的官职降低三级。刘禅接到奏章,不知该怎么办才好。有个大臣说:“既然丞相有这个意见,就依着他吧。”刘禅就下诏把诸葛亮降级为右将军,仍旧办丞相的事。由于诸葛亮赏罚分明,以身作则,蜀军将士都很感动。大家把这次失败当作教训,士气更加旺盛。这年冬天,诸葛亮又带兵杀出散关(今陕西宝鸡西南),包围了陈仓(今宝鸡东),杀了一个魏将;第二年春天,又出兵收复武都(今甘肃成县)、阴平(今甘肃文易西北)两个郡。后主刘禅认为诸葛亮立了功,下了一道诏书,恢复诸葛亮的丞相职位。