警戒阳遂,和诸葛亮在积石相遇。临近平原开战,诸葛亮无法前进,返回到五丈原。碰上有彗星坠落在诸葛亮的营内,宣帝知道他一定会失败,派遣奇兵牵制诸葛亮的后部,斩杀五百多人,活捉一千余人,投降的有六百余人。
当时朝廷认为诸葛亮是侨居江南的远敌,利于速战速决,常令宣帝要持重,以等待其变化。诸葛亮多次挑战,宣帝均不出战,于是诸葛亮送给宜帝女人的衣饰。宣帝大怒,上表请求决战,天子不同意,派正直之臣卫尉辛毗手持符节任军师来制止宣帝。后来诸葛亮又来挑战,宣帝准备出兵应战,辛毗手持符节立于军门,宣帝才罢休。当初,蜀将姜维听说辛毗前来,对诸葛亮说:“辛毗持节前来,敌寇不会再出战了。”诸葛亮说:“他本来就没有出战之意,所以坚决请战的原因,不过是在其兵众面前显示他的勇猛罢了。大将在军中,君命是可以不接受的,如果真能对付我,岂用远隔千里去请战呢!”
宣帝的弟弟司马孚写信请教军事,宣帝回信道:“诸葛亮志向远大而没有机遇,多谋少决断,喜好用兵但没有权,虽然率领十万士卒,但已堕入到我的圈套之中,打败他们必定无疑。”与诸葛亮对峙了一百多天,适逢诸葛亮生病去世,诸将焚烧营垒悄悄逃走,百姓奔走相告,宣帝出兵追击。诸葛亮的长史杨仪反转军旗鸣鼓进军,好像是要迎战宣帝的样子。宣帝认为穷寇不宜追,于是杨仪结阵而去。遇了几天,宣帝来到诸葛亮的营垒,察看他们遣下的东西,缴获了很多图书、粮草。宣帝确定诸葛亮死了,说:“真是天下的奇才。”辛毗认为还不能确定。宣帝说:“军家所重视的,是军事文书和机密、兵马粮草,现在都丢弃了,难道有丢弃了自己的五脏还能活着的人吗?应该马上追击。”关中多蒺藜,宣帝命二千军士穿着软底平跟的木屐前进,蒺藜全扎在木屐上,然后骑兵步兵一起进发。追到赤岸,知道了诸葛亮去世的确实消息。当时百姓对此事编了谚语说:“死诸葛亮吓跑活司马仲达。”宣帝听后笑着说:“因为我善于料知其生,不善于料知其死之故。”
在此之前,诸葛亮曾派使者来,宣帝问道:“诸葛公生活起居怎么样?能吃多少饭?”回答说:“能吃三四升。”然后又问政事,回答说:“凡处罚二十以上的都要亲自过问。”宣帝后来对别人说:“诸葛孔明怎么能活得长久呢!”最后如他所言。诸葛亮的部将杨仪、魏延争权,杨仪杀了魏延,吞并了他的军队。宣帝想乘机进军,诏令不允许。
三年,宣帝升太尉,增加封邑。蜀将马岱入侵,宣童派遣将军生金击退了他们,斩杀一千余人。
武都氐王苻双、强端率领部下六千余人前来投降。
阖东饥荒,宣帝从长安往京师运送了五百万斛粮食。
四年,宣帝得白鹿,献给天子。天子说:“从前且公旦辅佐厘廷,曾进献白雉。现在你管理陕西,又献上白鹿,这难道不是忠诚不二协同顺和,千年同心,共治邦国,使之吉祥万年吗!”
辽东太守公孙文懿谋反时,征调宣帝到京师。天子说:“原本不值得劳烦你,但此事一定得取胜,所以要烦扰你了。你认为他会有什么打算?”回答说:“放弃城池而预先离开,这是上策。占据遥水而抗拒大军,这是中策。坐地镇守塞垩,就肯定会被擒捉。”天子问:“那将有何良策?”回答说:“明察的人能深刻考虑敌我双方,预先有所放弃,遣不是他所能做到的。现在他孤军深入,涉远征伐,肯定不能持久,一定会先占据辽水而坚守,这是中、下之策。”天子说:“往返需要多长时间?”回答说:“去一百天,回一百天,攻打一百天,用六十天作为休整,一年足够了。”
当时正大规模修建宫室,加上军队征战,百姓饥荒凋敝。宣帝正准备用兵,就劝谏说:“从前周公曾营建洛邑,萧何曾修造未央宫,现在宫室尚未完备,这是我的责任。然而自黄河以北,百姓穷苦困窘,内外都有劳役,其势不能同时并兴,应该暂且停止兴造,以解救一时之急。”