公元234年,诸葛亮兵分五路第六次伐魏。魏明帝闻报,任命司马懿为大都督,领兵至渭水之滨迎战。诸葛亮与司马懿都知道对方兵法娴熟,足智多谋,不好对付,于是战前各自都作了周密部署,严阵以待。
诸葛亮在祁山选择有利地形,分设左、右、前、后、中5个大营,并从斜谷到剑阁一线接连扎下14个大营,分屯军马,前后接应,以防不测。司马懿则屯大军于渭水之北,同时在渭水上架起9座浮桥,命先锋夏侯霸、夏侯威领兵5万渡河至渭水南岸扎营,又在大营后方的东原筑城驻军,进可攻,退可守,稳扎稳打,务使魏军立于不败之地。
经过两次规模不大的交锋,双方互有胜负。此后魏军便深沟高垒,坚守不出。蜀军劳师远来,粮草供应很困难,因而利于速战;魏军以逸待劳,利于坚守。诸葛亮决定诱敌出战,调虎离山,速战速决。司马懿老谋深算,素以沉着、谨慎、稳重著称,不理会那些急于求功的部将鼓噪、攻击。
诸葛亮便将计就计,决定在粮草供给问题上设诱饵,以此引司马懿这只“虎”离山。诸葛亮采取的措施之一是分兵屯田,与当地老百姓结合就地生产粮食,以供军需,摆出一副作持久战的架势。果然司马懿的长子司马师沉不住气了,对其父司马懿说:“现在蜀兵以屯田作持久战的打算,如此下去,如何是了?何不约孔明大战一场,以决雌雄。”司马懿心里也很着急。诸葛亮的另一个措施是令工匠造木牛流马,长途运粮。蜀营粮草由木牛流马源源不断从剑阁运抵祁山大寨。
诸葛亮进一步引司马懿上钩。他一方面让士兵在大营外造木栅,营内掘深坑,堆干柴,在营外周围的山上虚搭窝铺草营,造成蜀兵分散结营与百姓共同屯田屯粮而大营空虚的假象,引诱魏军前来劫营。另一方面在上方谷内两边的山坡上虚置许多屯粮草屋,内设伏兵,同时让军士驱动木牛流马,伪装往来谷口运粮。诸葛亮自己则离开大营,引一支军马在上方谷附近安营,以引诱司马懿亲领精兵来上方谷烧粮。
司马懿烧粮心切,但又极为谨慎小心,深恐中了诸葛亮调虎离山的诡计,于是也使了个调虎离山计来应战。他亲领魏兵佯攻蜀兵祁山大营,目的是调动蜀军各营主力,甚至诸葛亮本人领军前来营救,而他却自领精兵奇袭上方谷,烧掉蜀方的粮草。诸葛亮早料到这一招,当魏军直扑蜀军大营时,诸葛亮只是事先安排蜀军四处奔走呐喊,虚张声势,装作各路兵马都齐来援救的态势,而诸葛亮却趁司马懿离开之机,另派一支精兵去夺了渭水南岸的魏营,而自己却在上方谷等待司马懿来烧粮,以便瓮中捉鳖。
司马懿果然中计。他见四处蜀军都急急忙忙奔向大营救援,便趁机急领司马师、司马昭及一支亲兵杀奔上方谷来。蜀将魏延依诸葛亮的安排,用诈败的方法诱司马氏父子进入谷中,截断谷口。一时山谷两旁火箭齐发,地雷突起,草房内干柴全都着火,烈焰冲天。司马氏父子眼看就将葬身火海。亏得突来一场倾盆大雨,司马氏父子及少数亲兵才免于死命。
司马懿原想用调虎离山计烧掉蜀军的粮草,想不到却反而中了诸葛亮的调虎离山计。