第一次
①子午谷之计
228年春天,蜀军准备好北伐,督前部,领丞相司马、凉州刺史魏延提出子午谷之计,据魏略记载:魏延建议由其率精兵五千,负粮五千,直从褒中出,循秦岭而东,当子午而北,不过十日可进军至长安。镇守长安的魏国安西将军夏侯楙怯而无谋,“闻延奄至,必乘船逃走”,长安唾手可得。魏国聚集军队“尚二十许日”,诸葛亮大军可趁机“从斜谷来,必足以达”。如此便可一举平定长安以西。但诸葛亮认为此计不定因素太多,未必能如此顺利,一旦失利将陷于进退维谷之地,最终选择了“安从坦道,可以平取陇右,十全必克而无虞”,确立了先攻占陇右作为进攻跳板的战略。于是诸葛亮派镇东将军赵云、扬武将军邓芝率一支军马作为疑兵,由箕谷摆出要由斜谷道北攻郿城的形势,以吸引魏军。魏明帝曹睿乃命曹真都督关右诸军,前往抵御赵云。诸葛亮则亲率主力趁势向祁山发起进攻。
②首战告捷
由于魏国事先无防备,导致陇右的南安、天水和安定三郡无力抵抗,天水、南安太守甚至弃守郡城向东逃窜,魏国天水守将姜维、梁绪、尹赏、上官雝等投降诸葛亮,雍州刺史郭淮则退往上邽固守待援。顷刻间陇右五郡(陇西、南安、天水、广魏和安定)有三郡投降了诸葛亮,仅有广魏郡和陇西郡拒不投降。陇西郡太守游楚坚决抵抗,蜀军难以攻克。曹魏“朝野恐惧”,在洛阳的魏明帝曹睿急率大军救援,亲自到长安坐镇,派大将军曹真督军至郿县防御赵云、张郃率军五万前往抵抗诸葛亮,曹魏凉州刺史徐邈也遣参军与金城太守率军进攻南安郡。诸葛亮也派遣马谡为前锋,到街亭设防。同时,为了防备雍州刺史郭淮从临渭出击配合张郃的进攻,于是诸葛亮命令高翔将军率领一支军队屯驻在临渭以北、街亭以南的列柳城。
③失守街亭
张郃在街亭与马谡相遇,可是马谡不遵循诸葛亮的部署,举措烦扰,又不接受王平的劝阻,不在当道之处下寨,反而上山设阵。而张郃先将蜀军包围在山上,切断其水源,后蜀军因为缺水而陷入内乱,马谡弃军逃亡,张郃乘势进攻,蜀军大败,街亭失守。只有王平领着千人,鸣鼓自守,而张郃又疑蜀军有伏兵,不作追击,于是王平集合分散的军队,向诸葛亮大军处撤退。街亭失守,列柳城高翔军又被郭淮攻破,高翔为避免陷入被包围的境地,于是退去。同时,赵云在箕谷也出兵不利,蜀军丧失了有利形势,诸葛亮取西县千余家,后引兵退回汉中。
④挥泪斩马谡
回到汉中,诸葛亮把临阵逃脱、弃士兵于不顾的马谡收狱,诸葛亮虽感可惜,但为严肃法度,便斩杀了马谡、张休及李盛,夺取黄袭等人之兵权;陈寿之父是马谡的参军,也被连坐处以髡刑;丞相参军、安汉将军李邈为马谡求情,被调回成都。王平却因有作进谏而被提拔。诸葛亮自己仍上书自贬三等,并作了自我批评,刘禅接纳,但仍以诸葛亮为右将军行丞相事,赵云亦贬为镇军将军,但被诸葛亮大嘉赞赏他守卫之功。后来,有人曾劝诸葛亮再北伐,但诸葛亮认为要更训练士卒,令他们忘了失败之事,才可再行。曹真和张郃在蜀军撤出后,快速将天水、南安、安定三郡平定,曹真又认为蜀军今番进攻祁山失败,斜谷道又被赵云烧毁和大水冲蚀,下次该会以陈仓作目标,便派将军郝昭、王生等与千余人屯兵陈仓。