226年(魏黃初七年,蜀建興四年),魏文帝曹丕駕崩,太子曹叡即位,任命夏侯楙駐守長(zhǎng)安,關(guān)中空虛。
227年(魏太和元年,蜀建興五年),孟達(dá)和諸葛亮多次通信,秘密答應(yīng)歸蜀;孟達(dá)和魏興太守申儀有隔閡,申儀秘密上表告發(fā)了孟達(dá)。孟達(dá)聽說后,驚惶恐懼,企圖舉兵反叛;司馬懿寫信安慰勸解了他,孟達(dá)因此猶豫不決。司馬懿則秘密率軍進(jìn)討,攻打新城。諸葛亮見有機(jī)可乘,便決定大舉北伐。
228年(魏太和二年,蜀漢建興六年)諸葛亮將要攻打曹魏,與諸將商量這次軍事行動(dòng)。魏延說:“聽說夏侯楙是曹操的女婿,此人膽卻而沒有智謀。現(xiàn)請(qǐng)給我五千人的精銳部隊(duì),帶著五千人口糧,直接從褒中出發(fā),沿著秦嶺向東,到子午道后折向北方,用不了十天功夫,可以抵達(dá)長(zhǎng)安。夏侯楙聽到我突然來到,一定棄城逃走。長(zhǎng)安城中就只有御史、京兆太守了。橫門糧倉的存糧以及百姓逃散剩下的糧食,足以供給軍糧。等到魏國(guó)在東方集結(jié)起軍隊(duì),還要二十多天時(shí)間,而您從斜谷出來接應(yīng),也完全可以到達(dá)。這樣,就可以一舉而平定咸陽以西的地區(qū)了?!敝T葛亮認(rèn)為這是危而不妥的計(jì)策,不如安全地從平坦的路上出去,可以穩(wěn)穩(wěn)當(dāng)當(dāng)?shù)厝〉秒]右地區(qū),有百分之百的把握取勝而不會(huì)有失,所以不用魏延之計(jì)。
諸葛亮揚(yáng)言從斜谷取城,命令鎮(zhèn)東將軍趙云、揚(yáng)武將軍鄧芝充當(dāng)疑兵,據(jù)守箕谷;魏明帝曹叡派遣曹真都督關(guān)右地區(qū)各軍駐扎在城。諸葛亮親自統(tǒng)率大軍進(jìn)攻祁山,軍陣整齊,號(hào)令嚴(yán)明。
起初,曹魏認(rèn)為劉備已經(jīng)去世,幾年來沒有什么動(dòng)靜,因此放松了防備;而突然聽到諸葛亮出兵,朝廷和民眾都很懼怕。于是,天水、南安、安定等郡都背叛魏而響應(yīng)諸葛亮,關(guān)中如雷轟頂,受到震動(dòng),朝廷大臣不知不什么對(duì)策,魏明帝說:“諸葛亮本來依據(jù)山險(xiǎn)固守,當(dāng)下親自前來,正合乎兵書所說招敵前來的策略,一定能夠打敗諸葛亮?!庇谑墙y(tǒng)領(lǐng)步兵和騎兵五萬大軍,命右將軍張郃監(jiān)管軍務(wù),向西抵御諸葛亮。丁未(疑誤),魏明帝到達(dá)長(zhǎng)安。
越嶲(今為四川西昌地區(qū))太守馬謖,才氣和抱負(fù)超過常人,喜好議論軍事謀略,諸葛亮對(duì)他深為器重;昭烈帝劉備臨終之時(shí)對(duì)諸葛亮說:“馬謖言語浮夸,超過實(shí)際才能,不可委任大事,您要對(duì)他多加考察?!敝T葛亮還認(rèn)為不是這樣,讓馬謖做參軍,時(shí)常接見一起談?wù)?,從白天直到黑夜。等到出兵祁山,諸葛亮不用舊將魏延、吳懿等為先鋒,而是讓馬謖統(tǒng)領(lǐng)各軍在前,同張郃在街亭交戰(zhàn)。
馬謖違背諸葛亮的指揮調(diào)度,軍事行動(dòng)混亂無章,放棄水源上山駐扎,不在山下?lián)爻且?。張郃斷絕馬謖取水的道路,發(fā)動(dòng)進(jìn)攻并大敗馬謖,蜀軍潰散。諸葛亮前進(jìn)沒有據(jù)點(diǎn),就攻取西縣一千多人家回到漢中。把馬謖關(guān)進(jìn)監(jiān)獄,殺了他。諸葛亮親自吊喪,為他痛哭流涕,安撫他的子女,如同平素一樣恩待他們。蔣琬對(duì)諸葛亮說:“古時(shí)候晉國(guó)同楚國(guó)交戰(zhàn)楚國(guó)殺了領(lǐng)兵的得臣,晉文公喜形于色。天下沒有平定,而殺了智謀之士,難道不惋惜嗎?”諸葛亮流著眼淚說:“孫武能夠制敵而取勝于天下的原因,是用法嚴(yán)明;所以晉悼公的弟弟揚(yáng)干犯法,魏絳就殺了為他駕車的人。當(dāng)下天下分裂,交戰(zhàn)剛剛開始,如果又廢棄軍法,怎么能夠討伐敵人呢?”
馬謖沒有失敗時(shí),裨將軍巴西人王平一再規(guī)勸馬謖,馬謖不采納;等到失敗,部眾四散,只有王平率領(lǐng)的一千人擂響戰(zhàn)鼓,把守營(yíng)地,張懷疑有伏兵不敢往前逼近,于是,王平緩緩地收擾各部散余的士兵,率領(lǐng)人馬返回。諸葛亮既殺了馬謖和將軍李盛,還奪了將軍黃襲等的兵權(quán),王平的名聲地位就特別提高和顯示出來,又提拔他為參軍,統(tǒng)領(lǐng)部兵馬和營(yíng)屯之事,官位遷為討寇將軍,封為亭侯。諸葛亮上書請(qǐng)求自己貶降三級(jí),劉禪任命諸葛亮為右將軍,兼理丞相的職務(wù)。
趙云、鄧芝的部隊(duì)也在箕谷戰(zhàn)敗,趙云收斂部隊(duì)堅(jiān)守,所以,損失不大,但也因此被貶為鎮(zhèn)軍將軍。諸葛亮問鄧芝道:“街亭失利,大軍敗退,兵將不再可收拾,箕谷戰(zhàn)敗部隊(duì)撤退,兵將依然齊整如初,是什么原因呢?”鄧芝說:“趙云親自在部隊(duì)后面拒敵,軍需物資,一點(diǎn)都沒有拋棄,兵將沒有什么緣由可以散亂。”趙云有軍資和剩余的絹帛,諸葛亮讓用來分給將士。趙云說:“軍事上沒有勝利,為什么要有賞賜,這些物資請(qǐng)全部存入赤岸庫,等到十月用作冬季犒勞品?!敝T葛亮很贊同這個(gè)意見。
魏明帝在戰(zhàn)后評(píng)價(jià)街亭之戰(zhàn)說:“亮懷李熊愚勇之志,不思荊邯度德之戒,驅(qū)略吏民,盜利祁山。王師方振,膽破氣奪,馬謖、高祥,望旗奔敗?;⒊贾鸨?,蹈尸涉血,亮也小子,震驚朕師。猛銳踴躍,咸思長(zhǎng)驅(qū)。”并稱贊張郃說:“賊亮以巴蜀之眾,當(dāng)虓虎之師。將軍被堅(jiān)執(zhí)銳,所向克定?!?/p>
而諸葛亮也在戰(zhàn)后做了反思,評(píng)價(jià)街亭之戰(zhàn)失敗的原因是:“大軍在祁山、箕谷,皆多於賊,而不能破賊為賊所破者,則此病不在兵少也,在一人耳。”
街亭之戰(zhàn)失敗,令到第一次北伐功敗垂成。日后蜀漢數(shù)次北伐亦未能獲得比本次令三郡投降更大的影響,而且本次蜀軍大敗,對(duì)本來已因夷陵之戰(zhàn)元?dú)獯髠氖駶h有較大的影響。
本來自劉備征孫權(quán)失敗,不久逝世后,蜀漢都沒有什么侵?jǐn)_魏蜀邊界的行動(dòng),曹魏都沒有作出什么準(zhǔn)備,以為蜀漢已無力侵邊;故此當(dāng)諸葛亮北伐的消息傳來時(shí),令朝野震動(dòng),更加令三郡叛離。戰(zhàn)后曹魏亦加強(qiáng)了對(duì)蜀漢的防衛(wèi),包括曹真預(yù)計(jì)諸葛亮?xí)リ悅},于是命將軍郝昭守治陳倉城,以致年底(即229年年初)諸葛亮進(jìn)圍陳倉時(shí)無功而還。及后亦因曹魏多作防備而令北伐難以獲得大的成果。