公元223年,汉昭烈帝刘备驾崩,后主刘禅即位。刘备遗命诸葛亮为托孤大臣,辅佐幼主刘禅,由此诸葛亮开始了夙兴夜寐、满怀悲情的后半生。
公元226年,即位不过六年,年仅四十岁的魏文帝曹丕驾崩,二十二岁的曹叡即位。诸葛亮认为曹魏新帝刚立,主少国疑,战机已现,决心北伐曹魏。公元227年,蜀军出师汉中,进军沔水,诸葛亮第一次北伐正式拉开帷幕。
蜀军刚出汉中,诸葛亮便秘密联络驻守新城(今湖北房县)的魏军守将孟达反戈一击。孟达本为刘备旧部,关羽襄樊战败被杀后,当时驻守上庸(今湖北竹山县西南)的孟达被迫投降曹魏。孟达心向蜀汉,准备反叛曹魏,结果消息不慎被驻军守将申仪得知,后者密报驻在宛城(今河南南阳)的司马懿。司马懿得知消息,星夜兼程,八日急行军,攻破新城,斩杀孟达。
公元228年正月,诸葛亮统领十万大军正式北上,将蜀军兵分两路,一路由镇东将军赵云、扬武将军邓芝率偏师从褒斜道佯攻郿县,一路由诸葛亮亲自统率主力大军进攻祁山堡,向雍州陇右地区(陕甘界山的六盘山以西地区)发起攻势。
诸葛亮进攻祁山堡之后,天水、安定、南安三郡纷纷倒戈,响应蜀军,雍州刺史郭淮撤守上邽,天水守将姜维投降诸葛亮,关中皆震。魏明帝曹叡御驾亲征,亲率五万大军来援,曹叡坐镇长安,命大将军曹真屯兵陈仓,右将军张郃增援陇右。
陇右地区是渭河平原以西的天然高地,是关中与雍州的联系通道,近邻凉州河西走廊。诸葛亮若攻取了陇右,便可切断关中与雍州的联系,向西可以蚕食雍凉,向东可以威胁关中。可惜的是蜀军并没能顺利突破祁山堡,诸葛亮大军被祁山堡、上邽拦截,无法前进。张郃增援陇右后,诸葛亮便令马谡进军街亭,接收三郡,掩护大军北翼的安全,再作长期围困的打算。
这样一来,街亭的地位就变得非常重要了,它必须万无一失,拖住张郃的援军,为诸葛亮进攻陇右争取时间。但令人惊讶的是,诸葛亮派出了从未领军过的马谡进军街亭,结果马谡弃守街亭、引兵上山将诸葛亮的一切打算化为泡影。
张郃带领的援军沿着番禺道行军,顺利抵达街亭,看到马谡弃守街亭,引兵上山,张郃马上下令切断山下水源,扼守街亭要地,最终轻易击溃马谡。街亭失守,蜀军大势已去,诸葛亮马上引兵后撤,率领主力大军撤回汉中。而此时赵云、邓芝的偏师也在箕谷战败,镇东将军赵云亲自掩护大军后撤,成功保存了有生力量。
曹真则趁势收复了安定、南安、天水三郡,稳定了陇右,大局已定,诸葛亮的第一次北伐宣告失败。这一次北伐,是蜀军优势最大的一次,蜀军兵力远胜曹魏,又有三郡响应,但最终无功而返。