建兴六年(西元228年)春天,诸葛亮发出消息说要从斜谷道去攻打郿县赵云,邓芝故作疑兵,占据箕谷.魏国大将军曹真率所有的兵力来对抗,诸葛亮亲身率领各路军队攻打祁山,军队阵容整齐,赏罚严肃而号令明白.南安,天水,安定三个郡都背叛魏国而响应诸葛亮,关中大为震惊.魏明帝西迁坐镇长安,命令张郃抵抗诸葛亮.诸葛亮派马谡督率各军前进,和张郃在街亮大战.马谡违背诸葛亮的约束规定,举动失当,被张郃打得大败.诸葛亮攻陷西县千家,率军回到汉中.诸葛亮斩杀马谡以谢三军.上奏疏说:
「臣凭著微弱的才能,窃居著不该占据的高位,亲率军队掌握斧钺大权,总是严格地训练三军.但是因为不能宣扬军令,训明法度,临事小心谨慎,以至於有马谡在街亭违背命令,作战失败的过错,以及箕谷警戒不严的失误.所有的错都在我个人授人任官不当而告成的.臣的见识不能了解人才的好坏,考虑事情大多不够聪明,《春秋》经书记载,军队战败该督责的是主帅,臣下的职位正当受此罪责.我自请贬职三等,来督责我的罪过.」
刘后主於是就贬诸葛亮为右将军兼摄丞相的事情,所总领的职务和从前一样.建兴六年(西元228年)冬天,诸葛亮又从散关出兵,围攻陈仓.曹真来抵抗他.诸葛亮因为粮食用完而班师回去.魏国将军王双率领骑兵来追打诸葛亮,诸葛亮与他作战,打败魏军,斩杀王双.建兴七年(西元229年),诸葛亮派遣陈式攻打武都,阴平二郡.魏国雍州刺史郭淮率军想去攻打陈式.诸葛亮自己出军,到达建威,郭淮退回,於是平定了武都,阴平二郡.刘后主下诏书说:
「街亭战败,全是马谡的罪过,而先生你引咎自责,深深地贬损自己,当时朕很难违逆你的心意,所以就勉强地听从了你的意见.前年你宣耀军威,斩杀了魏将王双.今年你再度北征,使得魏将郭淮逃走.你降服了氏,羌蛮族,收复了两郡.威势震动了凶暴的敌人,功勋显扬於天下.如今天下骚扰动汤,首恶尚未斩首示众,你承受著国家的大任,担当著国家的重责,却久久地贬损自己,这并不是表扬大功勋的办法呀!现在恢复你丞相的职位,你就不要推辞了!」
建兴九年(西元231年),诸葛亮再度往祁山出兵,用木牛运送军粮,粮食用尽了后,就班师回返,和魏将张郃交战,诸葛亮射死张郃.
建兴十二年(西元234年)春天,诸葛亮带领所有军队从斜谷出发,用流马运送军粮,占据在武功五丈原,和司马宣王(懿)在渭水南边列阵对抗.诸葛亮常常忧虑粮食接济不上,让自己的壮志无法伸展,於是就命令士兵分别屯田,作为长久驻扎的基础.耕田的士兵混杂在渭水边的居民间,而百姓都安居乐业,军队不曾侵扰百姓.两军对峙了一百多天,这年八月,诸葛亮生重病,死在军中,享年五十四岁