魏軍的將領們屢次請求出戰,但司馬懿始終未能批準,反而嘲諷道:“你對蜀國的畏懼如同對虎,難道不怕被天下人恥笑嗎?”在眾將的再三堅持下,司馬懿最終在五月辛巳日(公歷6月27日)派遣張郃進攻南方的王平,而他自己則從中路逼近蜀軍主力。王平堅定守衛南圍,成功擊退了張郃的攻擊,破壞了張郃對諸葛亮后方的襲擾計劃。與此同時,諸葛亮派遣魏延、高翔和吳班三路兵力與司馬懿的部隊交戰,取得了大勝,魏軍遭遇慘敗。
《漢晉春秋》記載,魏軍損失了三千名精銳將領,漢軍則繳獲了五千套鎧甲和三千一百張角弩。司馬懿只能退回大營自保。值得一提的是,這段記載在裴松之為《三國志》作注時也有引用?!稌x書》對此戰的記載卻與《漢晉春秋》完全相反。綜合各方史料,以及司馬懿之后極力避免與蜀漢軍進行正面交鋒的情況,可以推測,《晉書》可能是出于為司馬懿掩飾失敗而直接引用了晉朝的資料。此外,張郃的陣亡地點位于戰斗的東北方,而他是在追擊蜀軍時遭到埋伏,這也表明諸葛亮在此役后成功將戰線向前推進。因此,《資治通鑒》采納了《漢晉春秋》的說法,后來的史學家也多傾向于認為《漢晉春秋》的記載更為真實。