這一下,魏明帝坐不住了,他親自到長安坐鎮,命右將軍張郃率領五萬人馬,抵禦諸葛亮的主力部隊。
諸葛亮派參軍馬謖為先鋒,帶領軍隊,進駐街亭(今甘肅省秦安縣東北)迎擊魏軍。馬謖自幼善讀兵書,談起軍事道理來也頭頭是道,在南征叛亂時,他曾為諸葛亮出過很好的建議,深得諸葛亮的器重。但他缺乏實際作戰經驗,又自以為是,既不遵照諸葛亮的部署,又不聽從副將王平的勸告,把軍營盤紮在山上,結果被張郃圍困,切斷水源,蜀軍大亂,被殺得大敗,街亭為魏軍所奪。
諸葛亮錯用馬謖,失街亭,不僅僅使他感到終生遺憾,而且留給了後世一個很值得借鑒的曆史故事。
街亭之失,牽動全局。不久,曹真在東麵又發起進攻,打敗趙雲、鄧芝。前線失利,諸葛亮被迫退回漢中,所得到的南安、天水、安定三郡又歸附魏國。諸葛亮第一次北伐就這樣失敗了。回到漢中,諸葛亮嚴責馬謖,下令把他處死。諸葛亮和馬謖交誼深,但馬謖不斬又不能嚴明軍法,因而馬謖被處死之後,諸葛亮流著眼淚親自為他祭奠,這就是後代所說的“諸葛亮揮淚斬馬謖”。
順便提一下,在小說與戲劇中,有“空城計”的故事。說的是諸葛亮在失去街亭之後,沉著冷靜,坐守空城,彈琴嚇退了司馬懿的兵馬。其實這是一個虛構的故事,目的是為了突出諸葛亮的智謀。司馬懿當時駐軍宛城,根本不可能與諸葛亮接戰。
諸葛亮按軍法處死馬謖,就上書後主劉禪,請求給自己降職處分。第一次北伐的失敗,並沒有動搖諸葛亮北伐的決心,他加緊訓練軍隊,申明紀律,等待再次北伐的機會。
這年冬天,諸葛亮深知魏將曹真在石亭(今安徽省潛山縣東北)被吳軍打敗,關中虛弱。於是他又趁此時機領兵數萬,殺出散關(今陝西省寶雞市西南),包圍陳倉(今陝西省寶雞市東)。此次北伐,遭到了魏國守將郝(hǎo)昭的堅決抵抗,加上陳倉城牆堅厚,蜀軍圍攻了20多天,未能攻下。諸葛亮眼見蜀軍糧食將要吃完,又探聽得魏國救兵將至,無計可施,隻得主動撤兵。蜀軍撤退時,魏將王雙出兵追擊,諸葛亮用伏兵把他殺死。
蜀漢建興七年(公元231年)春天二月,諸葛亮再次出兵祁山,發動了第四次北伐。此時魏軍西線統帥曹真病危,魏明帝把東線的司馬懿調來西線對付諸葛亮的進攻。老奸巨猾的司馬懿知道蜀軍遠來,糧食接濟不便,而諸葛亮急於決戰求勝的特點,采取了憑險據守、按兵不動的策略。諸葛亮見沒有交戰的機會,就用退兵的辦法引誘敵人。司馬懿隻是遠遠跟著,並不靠近和蜀軍交鋒。每到一處,總是登山挖溝,安營紮寨,待蜀軍來攻,又老是不肯出戰。魏軍將領們都譏笑司馬懿,說:“司馬公畏蜀如虎,真不怕天下人笑話嗎?”司馬懿在眾將一再請求下,不得不領兵出擊。諸葛亮派大將魏廷、高翔、吳班等領兵迎擊,魏軍大敗,損失了許多軍械、輜重。
正在兩軍相持,形勢對蜀軍有利的時候,不料負責供應軍糧的李平督運不力,蜀軍糧食發生問題。李平又假傳後主劉禪的命令,讓諸葛亮退兵。諸葛亮以為出了什麼大事,隻好撤兵退回。司馬懿派大將張郃追擊,進至木門穀(今甘肅天水縣西南),被埋伏在此地的蜀軍萬箭齊發射死。
經過三年準備的時間,到了蜀漢建興十二年(公元234年)春天,諸葛亮第五次出兵代魏。四月,蜀軍到達渭水南岸的五丈原(今陝西省岐山南),紮下營寨。司馬懿率領魏軍渡過渭水,背水構築營壘阻擋,與蜀軍遙遙相對。諸葛亮此次出兵,還派了使者去東吳,約孫權東、西配合,共擊魏軍。殊不料吳軍很快被魏軍打敗而退兵。
司馬懿此次領兵拒敵,用的還是原來的策略:堅守不出。因為他知道蜀軍糧草運輸不易,時間一拖延,蜀軍必定糧盡自退。諸葛亮也深知糧草問題的重要。為了解決這一運輸問題,他設計創製了木牛和流馬,用來運輸糧草。同時,他還在渭水南岸“分兵屯田,為久駐之基”,讓一部分軍隊從事農業生產,作長期同魏軍作戰的準備。
雙方堅持了一百多天,此期間,蜀軍多次挑戰,司馬懿就是堅守不出,有一次諸葛亮還派人送一套女人穿戴的衣服給司馬懿,以此來羞辱、激怒他。雖然魏軍將領們氣得摩拳擦掌,紛紛要求和蜀軍見一高低,但老謀深算的司馬懿照樣還是堅壁高壘,固守不出。