建兴八年,秋七月,大将军曹真病愈,遂上表奏曰:“蜀兵数次犯我,若不剿除,长久之患也。今正秋爽,人马安闲,粮草丰足,臣愿与仲达同领大军,杀入汉中,扫平奸党,永宁西庭。”魏主览表大喜,问侍中刘晔曰:“子丹上表伐蜀,卿以为何?”刘晔曰:“大将军所言是也,今不剿除,永为祸患。”
次日,众大臣俱至刘晔宅问曰:“闻天子与公,议伐蜀之事,公意下如何?”刘晔曰:“盖无此事也。且,愚以为蜀有重山之险,非易图之,若强征伐,徒劳军旅,于国无益。”众臣辞去。杨暨入内告奏:“昨,刘晔劝陛下伐蜀,今对众臣,又言不可伐,刘晔有欺君之嫌,不可不问。”曹睿即召刘晔问曰:“卿劝朕伐蜀,今与人言又曰不可,为何?”刘晔曰:“昨日,陛下与臣所议,乃国之大事,岂可轻泄?兵者诡道也,事未发,宜密之。”曹睿大悟,愈加敬重。
不数日,司马懿巡南回洛,曹睿问其伐蜀之事。司马懿奏曰:“臣见孙权,无用兵之意,陛下正可趁机伐蜀。”曹睿大喜,即命曹真为大司马、征西大都督,司马懿为大将军、征西副都督,刘晔为军师,起兵四十万伐蜀。三人拜辞魏帝,西至长安,取子午谷南下。
时,孔明已病愈,正于汉中操练人马。忽报:“曹真、司马懿统兵四十万,以张合为先锋,取子午谷,来寇汉中!”孔明乃令张嶷、王平曰:“你二人速引一千精兵,去守子午谷险要。”二人相视曰:“魏军四十万,我兵一千,如何拒之?丞相欲杀我二人,就此请斩。”孔明笑曰:“仅命引一千兵前去者,乃不愿徒劳军士也。亮观天文,见毕星行践太阴,此月内必有大雨。到时子午谷河水暴涨,山洪频发,魏军虽有四十万,亦必狼狈而退,你二人定无危矣。若有失,亮之罪。”张嶷、王平大喜,引兵而去。孔明遂提大军,至城固县赤坂坡扎下营寨,传令各军,预备柴草,够人马一月之用。
曹真、司马懿提大军径入子午谷,张合统兵五万为先锋。司马懿谓曹真曰:“我夜观天文,见毕星侵履太阴,此月必有大雨,若不能速出子午谷,大雨骤至,我军危矣。”曹真即命大军兼程而进。行不二日,大雨忽降。司马懿曰:“不如速退。”曹真曰:“劳师远征,未战即退,于国何益?量此天雨,能奈我何!”遂驱三军,冒雨而进。洪水频发,泥石塞道,日进十余里。
消息传入洛阳,魏帝设坛祭天,求晴不得。黄门侍郎王肃上疏曰:“前志有云:‘千里馈粮,士有饥色,樵苏后爨,师不宿饱。’此谓平原行军者也,况我深入险阻,凿路而前。今,又遭老霖雨,山坂峻滑,兵滞而不能展,粮阻而难接续。曹真发已月余,方行半谷,治道工大,兵士力乏,实乃行军之大忌也。”杨阜、华歆亦上疏谏言。曹睿乃下诏退兵。