宣帝斩孟达,首级传至京师。俘获万余人,整顿军队回到宛。又鼓励农桑,禁止浪费,南方百姓都喜悦而归附。当初,申仪长期在魏兴作太守,疆场之事独断专行,常假借皇帝旨意刻印授官。孟达被杀,申仪心中有疑虑。当时诸郡守因宣帝新捷,多送礼祝贺,宣帝并不禁止,并使人暗示申仪也当来祝贺。申仪到后,宣帝质问承圣意刻印情况,将他拿下送往京师。又将孟达余众七千多家迁往幽州。蜀将姚静、郑他等率部属七千余人来降。
当时边郡新归附,多无户口姓名,魏朝廷准备加以核查落实。召宣帝朝于京师,以此事咨访于宣帝,宣帝回答说:“吴蜀以密网约束百姓,故百姓抛弃他们。我朝应只行施大政纲要,使之宽松,百姓自然就安乐了。”天子又问吴蜀都应讨伐,先讨伐谁为宜?宣帝回答说:“吴以为中原人不习水战,所以敢散居东关。凡攻击敌人,必先扼住咽喉,捣其心窝。夏口、东关是贼之心喉。若率陆军向皖城,引诱孙权东下,再率水军向夏口,乘其空虚而攻击之,此举如神兵从天而降,必然会打破吴国。”这两条意见天子以为都是对的,又命宣帝屯兵于宛。太和四年,迁为大将军,加大都督、假黄钺,与曹真一起伐蜀。宣帝自西城凿山开道,水陆并进,沿沔水而上,到达朐月忍,打下新丰县。大军屯驻丹口,遇雨回师。
第二年,诸葛亮侵扰天水,魏将贾嗣、魏平被围于祁山。天子对宣帝说:“西方有事,非君没有可以委托的人。”就派宣帝屯军于长安,都督雍、梁二州诸军事,统领车骑将军张郃、后将军费曜、征蜀护军戴肠、雍州刺史郭淮等讨伐诸葛亮。张郃劝宣帝分兵驻雍、郃为后镇,宣帝说:“如果预料前军能单独抵挡蜀军,你的意见是可以的。若不能抵挡蜀军,将军队分为前后两部分,这就是楚之三军被黥布俘获的原因。”立即进军阝俞麋。
诸葛亮听说魏大军将到,就亲自率领众将去割上圭阝的麦子。魏诸将都害怕,宣帝说:“诸葛亮考虑问题周密而做事不果决,必然先安营做好自卫准备,然后割麦,我们两天急行军即可到达。”于是卸甲轻装,日夜兼程进军,蜀军望扬尘而逃跑。宣帝说:“我军兼程而进,士卒疲劳,这是知兵法的人贪功的时候,而诸葛亮不敢占据渭水,这就容易对付了。”于是进军汉阳,与诸葛亮相遇,宣帝列阵等待。使将军牛金率轻骑引诱蜀军,刚接近蜀军而诸葛亮退兵,牛金追至祁山。诸葛亮屯兵卤城,占据南北二山,堵水筑围墙。宣帝攻破围墙,诸葛亮夜间逃走,魏军追击,大破蜀军,俘获斩首以万计。天子派使者慰劳官兵,增加宣帝的封地。当时军师杜袭、督军薛忄弟都说明年麦熟,诸葛亮必定来侵扰,陇右无粮,应趁冬天预先运粮。宣帝说:“诸葛亮两次出祁山,一次攻陈仓,都受挫而返。即使以后他还会出兵,将不再攻城,而是寻求野战,地点必在陇东,而不会在西边。诸葛亮常以粮少为恨,回去后必然广积粮草,我估计不经过三年,他是不会出兵的。”于是向皇帝上表,迁徙冀州农民到上圭阝种田,在京兆、天水、南安兴办官营冶铁业。
明帝青龙元年(233),开凿成国渠,筑临晋陂,灌田数千顷,国家仓库充实。青龙二年,诸葛亮又率十余万大军出斜谷,在..的渭水南原筑垒。天子为此而忧虑,派遣征蜀护军秦朗督统步骑兵二万人,受宣帝节度。诸将打算驻军渭北以待敌,宣帝说:“百姓积聚的粮秣财物都在渭南,这是必争之地。”即引军渡河,背渭水而筑垒。宣帝对诸将说:“诸葛亮若是个勇者,应当出武功,依山而东进。若西上五丈原,则我军就无事了。”诸葛亮果然上五丈原,并将由此北渡渭水,宣帝派遣将军周当屯兵阳遂以引诱蜀军。过了几天,诸葛亮不动。宣帝说:“诸葛亮欲争高地不向阳遂,他的用意我知道了。”派遣将军胡遵、雍州刺史郭淮共同在阳遂守备,与诸葛亮会于积石。在高地前接战,诸葛亮不得前进,回到五丈原。当时有一长星坠在诸葛亮营垒中,宣帝知道诸葛亮必败,派遣奇兵从后面抄袭蜀军,斩首五百余级,俘虏千余人,降者六百余人。
当时魏朝廷以为诸葛亮远征异域,利在急战,每次命令宣帝持重,等待敌军内部变故。诸葛亮多次挑战,宣帝不出,诸葛亮送给宣帝一幅妇人头巾及首饰之类的东西。宣帝发怒,向天子上表请求决战。天子不许,即派遣刚直之臣辛毗带着天子符节以军师身份控制魏军。后来诸葛亮又来挑战,宣帝将出兵应战,辛毗持节立于军门,宣帝才退回。当时蜀将姜维听说辛毗来,对诸葛亮说:“辛毗持节至军,贼兵不会再出来了。”诸葛亮说:“司马懿本来就没有应战的打算,所以要坚决请战,只不过是向其士兵表示为将帅的勇武罢了,将在军,君命有所不受,如果他能制服我们,何必到千里之外请战呢?”宣帝之弟司马孚写信问军中情况,宣帝复信说:“诸葛亮有大志而不能见机行事,多谋略而少决断,好用兵而无权,虽率十万大军,已经坠入我谋划的圈套了,破败蜀军是肯定的了。”魏军与蜀军对垒百余日,诸葛亮病死,蜀诸将烧营逃走,百姓奔走相告,宣帝出兵追击。诸葛亮的长史杨仪回军展旗鸣鼓,像是抵抗魏军。宣帝以为这些都是穷寇,并不逼近他,于是杨仪便结成阵列退走了。
过了一天,宣帝到诸葛亮的营垒去巡行,考察遗留下的痕迹器物,获得很多蜀军的图书、粮谷。宣帝判断诸葛亮必定是死了,并说:“真是天下的奇才啊!”辛毗认为诸葛亮是否死,还不一定。宣帝说:“军事家所重视的是军中文书、秘书计划、兵马吃的粮谷,现在他们把这些都丢弃了,一个人丢弃了五脏难道还可以活吗?应急速追赶蜀军。”关隘道路上蒺藜很多,宣帝使士兵二千人穿着用软材做成平底的木屐在前面走,蒺藜都被木屐带去,然后骑兵步兵一齐前进。追到赤岸,才知道诸葛亮已死的确实消息。当时百姓编了个谚语说:“死诸葛吓走活仲达。”宣帝听到后笑着说:“这是因为我长于预测活人的事,不长于预测人的生死啊!”在此之前,诸葛亮的使者到来,宣帝问使者说:“诸葛公起居饮食如何,一顿能吃多少米?”使者回答:“可食三四升。”然后又问处理政事的情况,使者说:“打二十军棍以上的处罚,都是诸葛公自己阅批。”使者走后宣帝告诉旁人说:“诸葛孔明是不会活很久了!”竟和宣帝说的一样,诸葛亮不久就死了。诸葛亮的部将杨仪、魏延互相争权,杨仪杀了魏延,将魏延的军队归于自己。宣帝想趁此机会进军,皇帝下诏不许。