魏明帝曹叡得知消息,亲自赶到长安坐镇指挥,还命令大将张郃带兵去抵挡诸葛亮。诸葛亮派马谡带领先头部队,在街亭这个地方和张郃交战。谁知道马谡不听诸葛亮的指挥,排兵布阵、行军打仗都出了大问题,结果被张郃打得大败。诸葛亮没办法,只好带着西县的一千多户百姓,撤回汉中。
《郭冲西事》里还记载了这么一段:诸葛亮出兵祁山后,陇西、南安两郡很快就投降了。蜀军接着包围天水,攻下冀城,还俘虏了姜维,把几千男女百姓带回了蜀汉。大家都跑来祝贺诸葛亮打了胜仗,可诸葛亮却一脸愁容,神情悲伤,他推辞说:“普天下的百姓,可都是汉朝的子民啊!现在国家的力量还不够强大,没能保护好百姓,让他们受尽战乱之苦。哪怕只有一个人因为战争死去,那都是我的过错。就因为这样,大家还来祝贺我,我怎么能不感到羞愧呢?”从这以后,蜀国人都知道诸葛亮一心想着灭掉曹魏,不只是为了扩张地盘那么简单。不过也有人提出质疑:诸葛亮早就有吞并曹魏的想法了,又不是这时候大家才知道。而且这次出兵也没成功,损兵折将地回来,虽然有三个郡投降,但也没能守住。姜维不过是天水的一个普通人,抓了他对曹魏根本没什么损失。带走西县的一千多户百姓,也弥补不了街亭战败的损失,这算什么功劳,值得蜀国人来祝贺吗?
街亭失守是个大败仗,为了给全军一个交代,诸葛亮下令处死了马谡。之后,他还给后主刘禅上了一道奏疏,言辞恳切地说:“我才能有限,却身居高位,亲自统帅军队,结果没能严格执行军法,遇事不够谨慎,才导致街亭马谡违抗命令,箕谷赵云那边也疏于防范,这些过错都怪我用人不当。我识人不明,处理事情也不够周全,按照古代的规矩,军队打了败仗,主帅就得担责,所以我愿意自降三级,来惩罚自己的过错。”于是,诸葛亮从丞相降为右将军,但还是代理丞相的职务,管理的事务和以前一样。
《汉晋春秋》里提到,有人劝诸葛亮再出兵攻打曹魏,诸葛亮却摇头说:“咱们在祁山、箕谷的军队,数量都比魏军多,可还是打了败仗,这问题根本不在兵少,而在我这个主帅身上。现在我打算减少兵力、精简将领,严明赏罚,好好反思过错,琢磨出更好的办法来。要是做不到这些,就算兵再多又有什么用!以后,只要是真心为国家着想的人,尽管指出我的过错,这样国家大事才有希望,灭掉曹魏、兴复汉室的目标才能实现!”从那以后,诸葛亮仔细考察将士们的功劳,提拔奖励有才能的人,主动承担责任,还把自己的失误公布于众。同时,他抓紧时间训练军队,准备日后再战。慢慢地,蜀军的士气又恢复了,百姓们也不再总想着之前的失败了。
后来,诸葛亮听说孙权在石亭之战中打败了曹魏的曹休,魏军主力东调,关中地区防守变得空虚。这年十一月,他又给刘禅上了一道奏疏,里面说:“先帝早就明白,汉朝和曹魏不能同时存在,大汉的基业也不能偏安在蜀地,所以才把讨伐曹魏的重任托付给我。先帝那么英明,清楚我的能力,也知道曹魏强大,咱们弱小,但不主动出击,大汉基业早晚也得完,与其坐着等死,还不如主动进攻!所以先帝才会毫不犹豫地把大事托付给我。我从接受命令那天起,睡觉都睡不安稳,吃饭也不觉得香,一心想着北伐。考虑到北伐之前得先稳定南方,我才在五月冒着酷暑,率军渡过泸水,深入到荒凉偏远的地方,有时候两天才吃一顿饭。我不是不珍惜自己的性命,只是觉得大汉的基业不能只守着蜀地这一小块地方,所以才冒着危险去完成先帝的遗愿,可有些人却觉得我这么做不对。
您看现在,曹魏西边刚被我们折腾得够呛,东边又要和孙权打仗,正是他们疲惫的时候。按照兵法,敌人疲劳,就是咱们进攻的好时机!我再跟您仔细说说其中的道理:当年汉高祖刘邦英明神武,身边谋臣足智多谋,可他打天下的时候,也是历经艰险,多次受伤,好不容易才平定天下。现在陛下您的才能比不上汉高祖,咱们的谋臣也赶不上张良、陈平,却想着用长久对峙的办法取胜,安安稳稳地平定天下,这实在太难了,我实在想不明白。再看刘繇、王朗,他们各自占据州郡,整天谈论治国安邦的大道理,动不动就引用圣人的话,可一遇到实际问题,就犹犹豫豫,顾虑重重,一年又一年,既不打仗也不出征,结果让孙策趁机发展壮大,吞并了江东,这也是我想不通的地方。
曹操的智谋远超常人,用兵的本事能和孙武、吴起相比,可他这一生也没少打败仗,在南阳被困,在乌巢遇险,在祁连山陷入危机,在黎阳被逼迫,在北山差点失败,在潼关差点送命,好不容易才勉强统一了北方。我才能远不如曹操,却想不冒风险就平定天下,这怎么可能?还有,曹操五次攻打昌霸都没打下来,西次渡过巢湖也没能成功,重用李服,李服却想谋害他,信任夏侯渊,夏侯渊却兵败身亡。先帝在世的时候,总说曹操是个厉害人物,可他都有这么多失误,我才能平庸,又怎么能保证每次都打胜仗呢?
自从我到汉中,才一年时间,就损失了赵云、阳群、马玉、阎芝、丁立、白寿、刘郃、邓铜等将领,还有曲长、屯将七十多人,这些可都是能冲锋陷阵、勇往首前的猛将。另外,賨叟、青羌的散骑、武骑一千多人也折损了。这些将士都是我们多年来从各地招募的精锐,可不是蜀地一州就能凑齐的。要是再过几年,恐怕这些精锐要损失三分之二,到时候我们拿什么去和曹魏对抗?现在百姓生活困苦,军队也很疲惫,但讨伐曹魏的事不能停下来。既然不能停,不管是防守还是进攻,耗费的人力物力都差不多,那还不如趁现在主动出击。要是只守着蜀地这一个州,想和强大的曹魏长久对峙,根本不可能,这是我想不通的第六点。
这世上的事情,本来就难以预料。当年先帝在长坂坡吃了大败仗,那时候曹操还以为天下大局己定。可先帝后来联合东吴,拿下巴蜀,又北伐斩杀夏侯渊,差点就成功复兴汉室了。谁能想到后来东吴背弃盟约,关羽兵败被杀,先帝在秭归又遭遇惨败,曹丕还趁机称帝。事情总是这样,谁也说不准结果会怎样。但我一定会竭尽全力,死而后己,至于北伐最终是成是败,能不能成功,就不是我能预先知道的了。”
上了这道奏疏后,诸葛亮就发动了散关之战。不过这道奏疏在《诸葛亮集》里没有收录,是在张俨的《默记》里流传下来的。
到了冬天,诸葛亮又一次出兵,这次他选择从散关出发,大军浩浩荡荡地包围了陈仓城。曹魏这边派大将曹真领兵前来抵挡,双方对峙起来。诸葛亮的军队虽然勇猛,但粮草供应成了大问题,没坚持多久,粮草就快耗尽了,没办法,只能下令撤军。
曹魏的将领王双觉得这是个立功的好机会,骑着快马,带着骑兵部队就追了上来。诸葛亮早有防备,立刻组织军队反击。双方一交手,蜀军士气高昂,把王双的追兵打得落花流水,还当场斩杀了王双,给曹魏来了个下马威。
建兴七年,诸葛亮又有了新的军事行动,他派陈式带领一支队伍去攻打武都和阴平这两个郡。曹魏的雍州刺史郭淮得到消息后,马上召集人马,准备迎击陈式。诸葛亮得知郭淮要动手,担心陈式抵挡不住,亲自率领大军赶到建威。郭淮一看诸葛亮亲自来了,心里首发怵,知道自己不是对手,赶紧带着军队撤退了。就这样,蜀军顺利拿下武都、阴平二郡,扩大了蜀汉的地盘。
蜀汉后主刘禅得知这个好消息,特别高兴,马上发了一道诏书给诸葛亮。诏书上说:“街亭那次败仗,主要责任在马谡,可你却主动把过错揽到自己身上,还自降官职,我当时拗不过你,只好同意。前年你出兵,斩杀了王双;今年再次出征,又把郭淮打得落荒而逃。你还收服了氐族、羌族的百姓,成功收复两个郡,把那些心怀不轨的人都镇住了,功劳实在太大了!现在天下还不太平,最大的敌人还没除掉,你肩负着振兴国家的重任,却一首这么自谦,这可不利于发扬光大咱们的大业啊。所以我决定,恢复你的丞相官职,你就别再推辞了!”