就在司馬懿剛剛上任的時候,蜀漢帝國的實際領導人諸葛亮已經在漢中集結大軍,準備對曹魏帝國展開全麵攻擊,在諸葛亮發動進攻之前,他聯絡了原先背叛了蜀漢帝國的新城太守(湖北房縣)孟達,重新效忠蜀漢,孟達雖然答應,但遲遲猶豫不決,不敢立刻起兵。司馬懿知道孟達將要背叛,一麵寫信好言安撫,一麵立刻帶人從宛城急行軍打了過去。當時,宛城距離新城足足有六百公裏,而且途中大半都是山路,非常不好走,孟達非常堅信司馬懿不可能親自來,他的部隊也不可能那麼快就到,可是,八天之後,司馬懿領著大軍已經到達新城,十六天之後,就把新城攻了下來。
孟達被殺以後,諸葛亮聯合孟達起兵的計劃落空,公元228年年初,他隻好獨自從漢中殺了出來。一開始,由於西北好幾年沒有經過大戰,曹魏帝國都沒有做好應戰的準備,諸葛亮大軍一到,各地紛紛投降,可是後來由於馬謖在祁山(甘肅西和西北)一戰中不守要道,卻守在山上,結果被張郃團團圍住,幾乎全軍覆沒,諸葛亮無險可守,隻好全體撤退。雖然這場大戰的頭功要算到張郃、曹真的頭上,但司馬懿迅速的砍掉諸葛亮的一條臂膀,也強有力的支援了友軍。
這一次戰役,被後人們稱為一出岐山,在《三國演義》裏,可以說是諸葛亮策劃的最經典戰役之一。後人總把一出岐山的失敗歸結於馬謖的失誤,但如果我們冷靜的、認真的讀一讀史書,就可以發現諸葛亮的北伐其實注定徒勞無功。在當時的中國,曹魏帝國的人口、軍力,比蜀漢和東吳加起來都強,而蜀漢僅僅占據著現今的大西南不到一半兒的地方,人口更是連曹魏帝國的五分之一都沒有,以這樣懸殊的實力對比還想戰勝,實在是比登天還難。
在幹掉孟達之後,司馬懿還順便逮捕了魏興太守(陝西)申儀。孟達叛亂的消息,其實是申儀告的密,但是申儀本人由於長時間的守在魏興,自己也是獨斷專行,動不動就假傳聖旨、私刻印章,隨便以自己的意願分封屬下。孟達的被殺,讓申儀對自己的前途也感到害怕,但是司馬懿派人對他好言安撫,請他來見麵,等申儀一來,司馬懿立刻把他逮捕,裝進囚車送到了洛陽。為了讓這個地區真正安定下來,司馬懿又把孟達舊部七千多戶人家流放到了幽州(河北北部),這一係列快速、有效的攻略,對蜀漢帝國也造成了巨大的影響,不久,蜀漢帝國的將領姚靜、鄭他率領七千多人也跑到司馬懿這裏來投降了。
看到原本動蕩的漢江上遊一帶逐漸安定,司馬懿才回到宛城。當時,這個地區剛剛真正納入曹魏帝國的管轄,新成立的郡政府、縣政府,連最基本的戶口名冊都沒有,皇帝曹睿想把這個地方好好捋一遍,就把司馬懿召到洛陽,想問問他,該製定些什麼辦法才能讓漢水上遊安定下來。沒想到,司馬懿卻說:“蜀漢帝國用嚴刑峻法統治百姓,所以百姓們才會跑到我們這邊來,我們應該盡量用寬大的政策去安撫他們,老百姓自然就會安家樂業。”這意思就是說,對待邊境的百姓,不要那麼嚴厲苛刻,盡量安撫,隻要不出亂子就行了。
曹睿聽到司馬懿的辦法非常滿意,就又問他,如果進攻蜀漢和東吳的話,應該先打誰。出乎別人的意料,司馬懿認為應該先打實力較強的東吳,他出的辦法就是,先派陸軍猛攻長江下遊,然後趁著東吳救援的時候,再派水軍從夏口打過去,讓敵人顧得了頭顧不了尾。實際上,在半個多世紀以後,晉王朝在滅吳的戰爭中,基本采用的就是這種戰法,司馬懿的計策,從某種程度上來說,應該是超前了半個多世紀。
司馬懿見過曹睿以後,就又回到了宛城。在公元228年12月,在一出岐山不到一年的時間裏,諸葛亮第二次對曹魏帝國發動了進攻。這一次,他打的是陳倉(陝西寶雞),但是由於陳倉守將郝昭防守嚴密,諸葛亮從月頭兒打到月尾,一點兒便宜也沒占著,等到張郃的援軍趕到時,諸葛亮已經回到漢中了。第二年的春天,為了防止漢中的西麵發生問題,諸葛亮攻克了曹魏帝國的武都郡(甘肅威縣)和陰平郡(甘肅文縣),然後立刻就返回漢中。