司马懿平定了孟达叛乱,率军赶到长安与魏主曹叡聚齐,曹叡大加赞赏,赐司马懿假节钺,统领二十万人马前往抵御诸葛亮,司马懿举荐张郃任先锋。
司马懿分析诸葛亮动向,认为诸葛亮一定会选择斜谷、箕谷进军,所以发缴文给曹真,令其拒守住两处险要之地,而要取斜谷、箕谷,必须经过秦岭之西的一条路,所以决定与先锋张郃一起,亲自去争夺这条路,这条路,叫做街亭。
街亭地理位置如此险要,诸葛亮也非常重视,参军马谡主动请缨去守街亭,诸葛亮不太放心,马谡立下军令状,决心要去,诸葛亮嘱其一定要在道路中央下寨,而且安排大将王平与他一起前往,给他两万五千兵,让他去了。
二人领军到达街亭,马谡却将诸葛亮的嘱咐置之脑后,执意在道旁的一座小山上扎寨,王平竭力劝阻也无济于事,只得到马谡给的五千兵马,在道路中央下寨。
司马懿发现蜀军在小山扎营大喜,先令张郃率军挡住王平,然后自己率军将小山团团围住。只围了不到一昼夜,蜀军由于得不到水喝,军心都崩溃了,许多军士投降魏军,马谡不得已发起冲锋,被魏军杀得大败,街亭失守。
街亭丢了,诸葛亮无法进军,只能遗憾安排撤退,其间两军在各个阵地展开战斗,总体来说蜀军占了上风。诸葛亮在西城县调兵遣将,将人马都派了出去,司马懿率军杀到城下,诸葛亮不得不用一招“空城计”退敌。
诸葛亮将大队人马都顺利撤回汉中,但是这次北伐夺取的南安、安定、天水三郡又被司马懿夺了回去,第一次北伐徒劳无功,也许收降姜维是唯一的收获。