宣皇帝名懿,字仲達,河內溫縣孝敬裡人。先祖是帝高陽的兒子重和黎,重和黎當時是掌火的官,他的子孫在唐堯、虞舜、夏、商幾個朝代都是任這個官職。到了周代,以掌火的官做司馬。周宣王時,任司馬官職的程伯休父,因平定徐方有功,便被賜以官名作族姓。秦末各地起義反秦,司馬..是趙王歇部下的將領,參加伐秦。秦亡以後,項羽封司馬..為殷王,都城在河內。漢朝定河內為郡,司馬氏子孫就定居在這裡。司馬..第八代孫出了征西將軍司馬均,均字叔平。司馬均的兒子是豫章太守司馬量,量字公度。司馬量的兒子司馬俊,俊字元異。司馬俊的兒子是京兆尹司馬防,防字建公。司馬懿即是司馬防的第二子。司馬懿少年時即有奇節,聰明而有謀略,博學而多聞,潛心於儒學研究。漢末天下大亂,常慨然為天下憂心。南陽太守楊俊是司馬懿的同鄉,以善識人著稱,見了不到二十歲的司馬懿,便覺得他是個非同尋常的人物。當時的尚書崔琰與司馬懿之兄司馬朗是朋友,崔琰對司馬朗說:「你的弟弟聰明而公正,剛毅而英俊,超出常人,你是不能超過他的。」
漢建安六年(201),宣帝被選拔為向朝廷報事的上計掾。魏武帝當時為司空,聞宣帝之名而欲徵召他任職。宣帝知道漢朝國運已經衰微,不願屈服於曹氏,便假稱有風痺之疾臥床難起,拒絕徵召。魏武帝使人夜裡去刺探他,宣帝臥床不起。魏武帝為丞相,又徵召為文學掾,給使者下令說:「若再推辭不來,就把他逮捕起來。」宣帝懼怕而就職。於是使他與太子一起相處以切磋學問,後遷為黃門侍郎,又轉為議郎、丞相東曹屬,不久轉為主簿。
宣帝隨軍討伐張魯,對魏武帝說:「劉備用詭詐之計俘虜了劉璋,蜀人未歸附而又爭奪遙遠的江陵,這是破蜀的機會,不可錯過。今若在漢中陳兵示威,益州就會震動不安,再進兵威逼,蜀兵勢必瓦解,趁這個好機會,事情是可以成功的。聖人不能違時,也不能失時。」魏武帝說:「人苦於不知足,既得隴右,復欲得蜀。」終於不接受這個意見。接著又隨武帝討伐孫權,孫權破敗。回軍以後,孫權派使者請求投降,上表稱臣,陳說天命當歸於曹氏。魏武帝說:「此兒想把我放在生著炭火的爐上燒烤啊!」孫權又答書說:「漢的國運將盡,殿下十分天下有其九,還以臣德服事漢。我向您稱臣是符合天意人心的,虞、夏、殷、周所以得天下而不謙讓,是怕違背天意,知道命運之所歸啊!」
魏國建立後,遷為太子中庶子,每次參與議定大事,總有奇策異謀,為太子所信賴重用,與陳群、吳質、朱鑠號稱四友。
後遷為軍司馬,對魏武帝說:「昔日箕子陳述治國之謀,把食放在首位。當今天下百姓不參加耕種的有二十餘萬,這不是治國的長遠謀略啊!雖然戰事未停,應該一邊耕種一邊守備。」魏武帝採納了這個意見,於是務農積穀,國家費用豐足。宣帝又陳說荊州刺史胡..為人粗暴,南鄉太守傅方驕傲奢侈,都不可據守邊疆。魏武帝沒有考察處理此事。及蜀將關羽在樊城圍困曹仁,於禁等七軍被水淹沒,胡..、傅方果然投降關羽,曹仁被圍很緊急。
當時漢獻帝建都許昌,魏武帝以為接近賊區,打算遷都河北。宣帝進諫說:「於禁等是被大水淹沒,不是戰守上的失誤,對於國家的大局並沒有大損失,為此而遷都,即是向敵人示弱,而淮河漢水一帶的百姓就會人心大不安定了。孫權與劉備表面親善,而內心疏遠,關羽得勝,是孫權所不願意的。可曉諭孫權,使他在後面牽制關羽,則樊城之圍可自然而解了。」魏武帝接受了這個意見。孫權果然派遣大將呂蒙西襲公安,公安被攻下,關羽也被呂蒙所俘獲。
魏武帝以為荊州遺民及在穎川屯田的軍民逼近南方寇賊,打算都遷徙他地。宣帝說:「荊楚之民輕脫,易於流動難以安定。關羽新破,一些做過壞事的人或藏或逃,觀望局勢。如將良民北遷,就傷害他們的意願,也會使逃去的人不敢回來。」魏武帝聽從了這個意見,以後逃亡的人都回來就業了。
魏武帝在洛陽去世時,朝野人士以為會出現危險局勢而害怕。宣帝統領喪事,內外寧靜無事,奉靈柩回鄴安葬。
魏文帝襲職即王位,封宣帝為河津亭侯,轉為丞相長史。此時孫權率軍西行,朝中議論以為樊城襄陽無軍糧,不能抵禦吳寇。當時曹仁鎮守襄陽,群臣請求召回曹仁退守宛。宣帝提議說:「孫權新破關羽,此時正是他想和我們結好的時候,一定不敢給我們造成禍患。襄陽是水陸交通要地,不能放棄。」這個意見沒有被接受,曹仁遂焚燒並放棄襄、樊二城,而孫權果然沒侵犯疆土,魏文帝很後悔。
魏受漢禪讓,文帝即皇帝位,以宣帝為尚書。不久轉為督軍、御史中丞,封安國鄉侯。
黃初二年(221),督軍官職撤銷,遷為侍中、尚書右僕射。黃初五年,天子南巡,在魏吳邊界觀兵。宣帝留鎮許昌,改封為向鄉侯,轉為撫軍、假節,領兵五千,加給事中、錄尚書事。宣帝堅意辭讓。天子說:「我處理各種政務,夜以繼日,沒有片刻休息時間。任此職並非榮耀之事,只是為我分憂罷了。」
黃初六年,天子又大興水師征吳,再次命宣帝居守,一則安定內部百姓,二則供應前線軍需。臨行下詔說:「後方的事我很不放心,所以才委託給你,漢初曹參雖有戰功,而封賞時蕭何最重。你能使我無西顧之憂,這不就行了嗎?」天子自廣陵回洛陽,給宣帝下詔說:「我東征,撫軍就統領西邊的事;我西征,撫軍就統管東邊的事。」於是宣帝留鎮許昌。
天子病重時,宣帝與曹真、陳群等在崇華殿之南堂拜見天子,天子臨終遺命讓他們輔助少主,給太子下詔說:「有人離間此三公的,要慎重處理,不要懷疑他們。」明帝即位,改封為舞陽侯。
孫權圍江夏,派其將諸葛瑾、張霸同時攻襄陽,宣帝督率諸軍討伐孫權,孫權敗走。宣帝進擊,打敗諸葛瑾,斬了張霸,取首級千餘。遷為驃騎將軍。
明帝太和元年(227)六月,天子下詔令使宣帝屯兵於宛,加都督荊、豫二州諸軍事。
當初蜀將孟達降魏,魏給他的待遇很優厚。宣帝以為孟達言行狡詐,看風使舵,不可信任,向明帝懇切進諫,明帝不聽,讓孟達領新城太守,封侯,假節。孟達於是連結東吳,鞏固蜀對他的信任,暗地圖謀中原。蜀丞相諸葛亮厭惡孟達反覆無常,又憂慮他危害蜀國。孟達與魏興太守申儀有怨仇,諸葛亮欲加深他們之間的怨仇,派郭模詐降魏,去拜訪申儀,故意洩露孟達欲叛魏的計劃。孟達聽說自己的謀劃洩露,準備起兵。宣帝恐孟達迅速發兵,寫信告訴他說:「將軍昔日拋棄劉備,托身於我國,國家將疆場重任委託給你,並將伐蜀的事也托付給將軍,至誠之心可謂如天上白日。蜀人不論愚智,對將軍莫不痛恨。諸葛亮欲破壞你和魏的關係,只苦於沒有辦法。郭模所說的並非小事,諸葛亮怎能忽視此事而讓郭模洩露,此中道理是容易明白的。」孟達得信大喜,謀魏之事猶豫未決。宣帝即暗地進軍討伐。諸將認為孟達與吳蜀互有衝突,應先觀望而後動手。宣帝說:「孟達無信義,現在正是他們互相猜疑的時候,應當在他未作出決定的時候消滅他。」於是快速進軍,一日行二日路程,八天便到了上庸城下。吳蜀各遣其將向西城安橋和木闌塞進軍以救孟達,宣帝分派諸將阻截吳蜀軍。
開始孟達給諸葛亮寫信說:「宛離洛陽八百里,離我處一千二百里,聽到我起事的消息,當上表給天子,來回路程,須一個月時間,那時我的城池已經修整牢固,諸軍都作好了準備。我處在深山險道之中,司馬公必不會親自來,其部下諸將來,我不會有憂患的。」及魏兵到,孟達又告諸葛亮說:「我起事八日,而魏兵已至城下,多麼神速啊!」上庸城三面河水阻隔,孟達在城外立木柵以鞏固城防。宣帝渡水破壞了木柵,直抵城下。分八路攻城,攻了十六日,孟達外甥鄧賢、部將李輔等開門出降。宣帝斬孟達,首級傳至京師。俘獲萬餘人,整頓軍隊回到宛。又鼓勵農桑,禁止浪費,南方百姓都喜悅而歸附。
當初,申儀長期在魏興作太守,疆場之事獨斷專行,常假借皇帝旨意刻印授官。孟達被殺,申儀心中有疑慮。當時諸郡守因宣帝新捷,多送禮祝賀,宣帝並不禁止,並使人暗示申儀也當來祝賀。申儀到後,宣帝質問承聖意刻印情況,將他拿下送往京師。又將孟達餘眾七千多家遷往幽州。蜀將姚靜、鄭他等率部屬七千餘人來降。
當時邊郡新歸附,多無戶口姓名,魏朝廷準備加以核查落實。召宣帝朝於京師,以此事咨訪於宣帝,宣帝回答說:「吳蜀以密網約束百姓,故百姓拋棄他們。我朝應只行施大政綱要,使之寬鬆,百姓自然就安樂了。」天子又問吳蜀都應討伐,先討伐誰為宜?宣帝回答說:「吳以為中原人不習水戰,所以敢散居東關。凡攻擊敵人,必先扼住咽喉,搗其心窩。夏口、東關是賊之心喉。若率陸軍向皖城,引誘孫權東下,再率水軍向夏口,乘其空虛而攻擊之,此舉如神兵從天而降,必然會打破吳國。」這兩條意見天子以為都是對的,又命宣帝屯兵於宛。
太和四年,遷為大將軍,加大都督、假黃鉞,與曹真一起伐蜀。宣帝自西城鑿山開道,水陸並進,沿沔水而上,到達朐月忍,打下新豐縣。大軍屯駐丹口,遇雨回師。
第二年,諸葛亮侵擾天水,魏將賈嗣、魏平被圍於祁山。天子對宣帝說:「西方有事,非君沒有可以委託的人。」就派宣帝屯軍於長安,都督雍、梁二州諸軍事,統領車騎將軍張..、後將軍費曜、征蜀護軍戴腸、雍州刺史郭淮等討伐諸葛亮。張..勸宣帝分兵駐雍、..為後鎮,宣帝說:「如果預料前軍能單獨抵擋蜀軍,你的意見是可以的。若不能抵擋蜀軍,將軍隊分為前後兩部分,這就是楚之三軍被黥布俘獲的原因。」立即進軍俞麋。諸葛亮聽說魏大軍將到,就親自率領眾將去割上圭的麥子。魏諸將都害怕,宣帝說:「諸葛亮考慮問題周密而做事不果決,必然先安營做好自衛準備,然後割麥,我們兩天急行軍即可到達。」於是卸甲輕裝,日夜兼程進軍,蜀軍望揚塵而逃跑。宣帝說:「我軍兼程而進,士卒疲勞,這是知兵法的人貪功的時候,而諸葛亮不敢佔據渭水,這就容易對付了。」於是進軍漢陽,與諸葛亮相遇,宣帝列陣等待。使將軍牛金率輕騎引誘蜀軍,剛接近蜀軍而諸葛亮退兵,牛金追至祁山。諸葛亮屯兵鹵城,佔據南北二山,堵水築圍牆。宣帝攻破圍牆,諸葛亮夜間逃走,魏軍追擊,大破蜀軍,俘獲斬首以萬計。天子派使者慰勞官兵,增加宣帝的封地。
當時軍師杜襲、督軍薛弟都說明年麥熟,諸葛亮必定來侵擾,隴右無糧,應趁冬天預先運糧。宣帝說:「諸葛亮兩次出祁山,一次攻陳倉,都受挫而返。即使以後他還會出兵,將不再攻城,而是尋求野戰,地點必在隴東,而不會在西邊。諸葛亮常以糧少為恨,回去後必然廣積糧草,我估計不經過三年,他是不會出兵的。」於是向皇帝上表,遷徙冀州農民到上圭種田,在京兆、天水、南安興辦官營冶鐵業。
明帝青龍元年(233),開鑿成國渠,築臨晉陂,灌田數千頃,國家倉庫充實。
青龍二年,諸葛亮又率十餘萬大軍出斜谷,在..的渭水南原築壘。天子為此而憂慮,派遣征蜀護軍秦朗督統步騎兵二萬人,受宣帝節度。諸將打算駐軍渭北以待敵,宣帝說:「百姓積聚的糧秣財物都在渭南,這是必爭之地。」即引軍渡河,背渭水而築壘。宣帝對諸將說:「諸葛亮若是個勇者,應當出武功,依山而東進。若西上五丈原,則我軍就無事了。」諸葛亮果然上五丈原,並將由此北渡渭水,宣帝派遣將軍周當屯兵陽遂以引誘蜀軍。過了幾天,諸葛亮不動。宣帝說:「諸葛亮欲爭高地不向陽遂,他的用意我知道了。」派遣將軍胡遵、雍州刺史郭淮共同在陽遂守備,與諸葛亮會於積石。在高地前接戰,諸葛亮不得前進,回到五丈原。當時有一長星墜在諸葛亮營壘中,宣帝知道諸葛亮必敗,派遣奇兵從後面抄襲蜀軍,斬首五百餘級,俘虜千餘人,降者六百餘人。
當時魏朝廷以為諸葛亮遠征異域,利在急戰,每次命令宣帝持重,等待敵軍內部變故。諸葛亮多次挑戰,宣帝不出,諸葛亮送給宣帝一幅婦人頭巾及首飾之類的東西。宣帝發怒,向天子上表請求決戰。天子不許,即派遣剛直之臣辛毗帶著天子符節以軍師身份控制魏軍。後來諸葛亮又來挑戰,宣帝將出兵應戰,辛毗持節立於軍門,宣帝才退回。當時蜀將姜維聽說辛毗來,對諸葛亮說:「辛毗持節至軍,賊兵不會再出來了。」諸葛亮說:「司馬懿本來就沒有應戰的打算,所以要堅決請戰,只不過是向其士兵表示為將帥的勇武罷了,將在軍,君命有所不受,如果他能制服我們,何必到千里之外請戰呢?
宣帝之弟司馬孚寫信問軍中情況,宣帝覆信說:「諸葛亮有大志而不能見機行事,多謀略而少決斷,好用兵而無權,雖率十萬大軍,已經墜入我謀劃的圈套了,破敗蜀軍是肯定的了。」魏軍與蜀軍對壘百餘日,諸葛亮病死,蜀諸將燒營逃走,百姓奔走相告,宣帝出兵追擊。諸葛亮的長史楊儀回軍展旗鳴鼓,像是抵抗魏軍。宣帝以為這些都是窮寇,並不逼近他,於是楊儀便結成陣列退走了。過了一天,宣帝到諸葛亮的營壘去巡行,考察遺留下的痕跡器物,獲得很多蜀軍的圖書、糧谷。宣帝判斷諸葛亮必定是死了,並說:「真是天下的奇才啊!」辛毗認為諸葛亮是否死,還不一定。宣帝說:「軍事家所重視的是軍中文書、秘書計劃、兵馬吃的糧谷,現在他們把這些都丟棄了,一個人丟棄了五臟難道還可以活嗎?應急速追趕蜀軍。」關隘道路上蒺藜很多,宣帝使士兵二千人穿著用軟材做成平底的木屐在前面走,蒺藜都被木屐帶去,然後騎兵步兵一齊前進。追到赤岸,才知道諸葛亮已死的確實消息。當時百姓編了個諺語說:「死諸葛嚇走活仲達。」宣帝聽到後笑著說:「這是因為我長於預測活人的事,不長於預測人的生死啊!」
在此之前,諸葛亮的使者到來,宣帝問使者說:「諸葛公起居飲食如何,一頓能吃多少米?」使者回答:「可食三四升。」然後又問處理政事的情況,使者說:「打二十軍棍以上的處罰,都是諸葛公自己閱批。」使者走後宣帝告訴旁人說:「諸葛孔明是不會活很久了!」竟和宣帝說的一樣,諸葛亮不久就死了。諸葛亮的部將楊儀、魏延互相爭權,楊儀殺了魏延,將魏延的軍隊歸於自己。宣帝想趁此機會進軍,皇帝下詔不許。
青龍三年,遷為太尉,多次增加封地。蜀將馬岱入境侵擾,宣帝派遣牛金迎擊,馬岱被趕走,斬蜀軍千餘人。
武都氐王苻雙、強端率領其屬下千餘人來降。
關東發生饑荒,宣帝將五百萬斛粟米從長安運往京師。
青龍四年,得到一隻白鹿,獻給了天子,天子說:「昔日周公旦輔助成王,有人貢上白雉。今君在陝西受國家重任,獻上白鹿,君的忠誠之心豈非和千年之前的周公一樣,如符契不差,以治理邦家,使國運長盛不衰嗎!」
遼東太守公孫文懿謀反,天子徵召宣帝回京師。天子說:「此事不值得煩勞你,只是想出師必勝,所以還是煩你去一趟。你估量公孫文懿會施何種計謀呢?」宣帝回答說:「事先棄城逃走,是上計。憑借遼水抗拒我大軍,這是次計。坐守襄平,那他就要當俘虜了。」天子說:「他將採用哪一種辦法呢?」宣帝回答說:「只有那些明智的人能透徹估量自己和對方的力量,預先放棄城池,這不是他所能做到的。今我孤軍遠征,他會認為我們不能持久,必然先在遼水抗拒,再後退守城,這是中計和下計。」天子說:「往返需多少時間?」宣帝回答說:「去百日,回百日,攻戰百日,用六十天休息,一年時間足夠了。」
當時天子大修宮殿,加上軍旅之費,百姓饑困疲敝。宣帝將遠征,進諫說:「昔日周公營造洛邑,蕭何建造未央宮,今日宮室不完備,這是我的責任。然而黃河以北,百姓窮困,內外徭役繁多,勢必不能百廢俱興,應暫時停止內務,以救目前之急。」
明帝景初二年(238),宣帝率領牛金、胡遵等步騎兵四萬,從京都出發。天子車駕送出西明門,下詔讓宣帝之弟司馬孚、宣帝之子司馬師送過溫,賜給谷帛牛酒,令當地郡守典農以下官員都去迎送聚會。宣帝會見父老故舊,宴飲多日。宣帝臨席歎息,悵然有感,編了一首歌唱道:「天地自開闢,日月齊放光。適逢國多事,竭力征遠方。將去掃群丑,順路回故鄉。萬里盡肅清,八荒入我疆,成功歸故里,待罪在舞陽。」於是進軍遼東,經過孤竹,越過碣石,來到遼水。公孫文懿果然派遣步騎兵數萬,在遼隧阻攔,築堅壁而守,南北六七十里,以抗拒宣帝。宣帝部署大量兵力多張旗幟,出現在敵軍南面,賊兵全力奔赴南面迎戰。宣帝指揮軍隊乘船暗暗渡河到達賊軍北面,與賊營逼近,然後鑿沉船隻,燒掉橋樑,沿遼水作包圍圈,丟開賊軍向襄平進發。諸將議論說:「不攻城而作圍,怎麼向眾人解釋呢?」宣帝說:「賊堅營高壘,是想讓我們兵疲糧盡,我們攻城,正中了他們的計,這就是王邑恥過昆陽的原因。古人說,敵雖守高壘而不得不與我作戰,就是要進攻他必須援救的目標。賊大軍在此,他的老巢就空虛了。我直取襄平,賊軍會人人恐懼,恐懼就會求戰,這樣我們就一定會打敗他了。」遂即整頓陣列前進。賊軍見魏兵出現在後面,果然出來截擊。宣帝對諸將說:「我所以不攻擊他們的營壘,正是要造成現在這樣的局面,這個機會不可失去。」於是縱兵迎擊,大破賊軍,三次接戰,都打勝了。賊軍退保襄平,魏軍包圍了襄平。
當初,公孫文懿聽說魏出師征遼東,向孫權求救。孫權也出兵在南方表示聲援,送給文懿一封信說:「司馬公善用兵,變化若神,所向無敵,此役我深為弟擔憂。」
遇到連日大雨,平地水深數尺,三軍恐慌,想轉移營地。宣帝下令軍中,敢言轉移者斬首。都督令史張靜違犯命令,被殺,軍中這才安定。賊軍倚仗大水阻隔,照常採樵放牧。諸將欲出擊,宣帝不准。司馬陳王圭說:「昔日攻上庸,八路並進,晝夜不停,故能在一旬半時間裡,攻下堅城,殺了孟達。今遠道來此,而行動更加緩慢,我內心疑惑不解。」宣帝說:「孟達軍隊少而糧食能支持一年,我們的將士是孟達的四倍而糧食不足一個月食用,以只有一月糧的軍隊對付有一年糧的軍隊,怎能不速戰速決?四個打一個,即令有一半人傷亡,還是應當打的。所以不計較死傷,是要為糧食而爭取時間啊。現在賊軍多我軍少,賊糧少,我糧多,又有這樣的大水,這是人力不能改變的,即是應當速戰,又怎麼可行呢?自從出兵,我憂慮的不是賊來進攻,而是憂慮他們逃跑。今賊軍糧食將盡,而我們的包圍圈未合攏,如果搶掠他們的牛馬,抄襲他們的採樵者,這是故意驅使他們逃走。用兵是詭詐之道,應善於因事而變化。賊憑借人多和大水,故雖饑困,不肯束手就擒,應當向他們顯示我們無能力進攻,使他們穩定下來。為了得小利而把他們嚇跑,這不是好計謀。」朝廷聽說軍隊遇雨,都請求把軍隊召回來。天子說:「司馬公能臨危應變,公孫文懿被擒計日可待了。」不久雨止,包圍圈合攏,起土山挖地道,準備好盾牌、鉤刀、沖車攻城,射箭發石如雨,晝夜攻擊。
當時有一個白色帶有芒刺狀的長星,從襄平城西南流向東北,墜於梁水,城中震動而驚恐,文懿恐懼,使相國王建、御史大夫柳甫請求投降,請魏軍解圍,文懿願自縛請罪。宣帝不許,捉住王建等並把他們殺掉,傳檄文通告文懿說:「昔日楚和鄭是並列的國家,鄭伯尚且肉袒牽羊而迎楚軍。孤家為王者大臣,位在上公,而王建等要我解圍退兵,如楚鄭一樣同列相待。二人年老糊塗,必是傳話不符原意,已經將他們斬首。若還有話要說,可再派年少明智果決的人來。」文懿又派侍中衛演乞求限期送來人質。宣帝對衛演說;「作戰的事大要有幾種選擇,能戰應當戰,不能戰應當守,不能守應當走,其餘兩條就是投降與死了。你不肯自縛請罪,這就是決心要尋死了,不須送人質。」文懿從南面出擊突圍,宣帝縱兵將他擊敗,在梁水上長星墜落的地方把他殺了。入城以後,立兩個標竿以區別新舊。十五歲以上的男子七千餘人全部殺死,集中屍首修成一個高大的墳墓。公卿以下的偽官吏都殺掉,軍人被殺的有將軍畢盛等二千餘人,收百姓四萬戶,三十餘萬人。
當初,文懿篡奪他叔父公孫恭的官位,並把叔父囚禁起來,將要謀反時,將軍綸直、賈范等苦諫,文懿把他們殺了。宣帝釋放了公孫恭,為綸直等人修了墳墓,並提拔表彰他們的後代。下令說:「古時伐國,誅滅其首領人物罷了,那些為文懿所誤而參與謀反者,都予寬恕,有內地人想還鄉的,都聽便。」
當時有些士兵寒凍,請求發給短襖,宣帝不給。有人說:「幸好還有些舊短襖,可以賜給他們。」宣帝說:「短襖是官物,作為人臣不能私自施捨。」上奏天子將軍人中六十歲以上的千餘人遣返回家,將吏從軍死的治喪還家。於是班師回朝。天子派使者在薊慰勞軍隊,為宣帝增封昆陽食邑,連原封共二縣。
當初,宣帝到襄平,夢見天子枕在自己膝上,說:「看著我的臉。」宣帝俯視天子,面目異於平常,心中厭惡。平公孫文懿後,天子先下詔讓宣帝走便道去鎮守關中;到了白屋,又下詔召宣帝回京,三日之內,詔書五次下達。天子親筆寫的詔書說:「近時寢臥不安,望君早到,到京便直接撞開宮門而入,看我的面。」宣帝大為震驚,乘追鋒車日夜兼行,白屋至京四百餘里,一宿便到。被引入嘉福殿天子臥室內,來到御床前,宣帝流著淚問候病情,天子握住宣帝的手看著齊王說:「將後事托付與君。死是可以忍耐延緩的,我忍住不死就是為了等你,能夠見到你,也就沒有遺憾了。」宣帝與大將軍曹爽一起受遺詔輔助少主。
齊王即帝位,宣帝遷為侍中、持節、都督中外諸軍事、錄尚書事,與曹爽各統兵三千人,共執朝政,輪流在殿中值勤,乘轎入殿。曹爽欲使尚書奏事先通過自己,就向天子提議,讓宣帝徙為大司馬。朝臣議論以為前後兩任大司馬都在職死亡,於是以宣帝為太傅,入殿不趨走,參拜天子時不提自己的名字,帶劍穿履上殿,如漢朝蕭何一樣。嫁娶喪葬的費用由官家供給,以世子司馬師為散騎常侍,子弟中三人為列侯,四人為騎都尉。宣帝堅意辭讓了子弟們的官爵。
正始元年(240)春正月,東倭通過翻譯來納貢,焉耆、危須諸國,弱水以南,鮮卑各王,都派使者獻物,天子將此事歸功於宰輔,又增加了宣帝的封邑。
當初,魏明帝好修宮室,規模宏大華麗,百姓以此為苦。宣帝自遼東回來,服勞役的人還有萬餘人,各種工巧的玩物動輒以千計。這時宣帝上奏都予停止,節省費用,使農民專心務農,天下人民欣喜有所依賴了。
二年夏五月,吳將全琮侵擾芍陂,朱然、孫倫包圍樊城,諸葛瑾、步騭擄掠木且中,宣帝請求親自討伐。議論此事的人都認為賊遠來圍樊城,不能很快取勝,受挫於堅城之下,自己會走向失敗,宜用持久的辦法對付他們。宣帝說:「邊城受敵人侵擾而大臣安坐廟堂,會使疆場騷動不安,眾心疑惑,這是社稷的大憂患。」
六月,宣帝督率諸軍南征,天子車駕送出津陽門。宣帝以為南方氣候濕熱,不宜持久。命輕騎挑戰,朱然不敢出戰。宣帝於是休整軍隊,選拔精銳,招募先登者,申明號令,向吳軍顯示決心進攻的氣勢。吳軍夜間逃走,追至三州口,斬殺俘獲萬餘人,收取吳人的舟船軍資而還。天子派侍中常侍到宛慰勞將士。
秋七月,增封食邑郾、臨穎,連以前共四縣,一萬戶,子弟十一人都封為列侯。宣帝功勳德望日漸盛大,然而卻更加謙恭。宣帝認為太常常林是同鄉長者,見了他總要下拜。常告誡子弟們說:「盛滿是道家所忌的,春夏秋冬尚且往返推移,吾有何德能居此高位。減損再減損,或可以免於禍啊!」
三年春,天子追封謚宣帝亡父京兆尹為舞陽成侯。
三月,宣帝上奏天子開廣漕渠,引黃河水入汴水,灌溉東南各陂,開始在淮北大批屯田。
在此之前,吳派遣其將諸葛恪屯兵於皖,邊疆百姓深受其苦,宣帝欲親自擊退諸葛恪。議論此事的人多以為吳賊佔據堅城,廣積糧草,欲引誘官兵。今孤軍遠征,賊必有救兵到來,那時進退兩難,看不到有什麼便利之事。宣帝說:「賊所擅長的是水戰,今我攻其城,以觀其變化。賊若用其所長,棄城奔走,這是我們預定的目的。賊若敢固守城池,湖水冬淺,船不能行,救兵必棄船就陸相救,這就要進行他們不擅長的陸戰,這對我們是有利的。」
四年秋九月,宣帝督率諸軍進擊諸葛恪,天子車駕送出津陽門。大軍到達舒,諸葛恪燒燬積聚的糧草軍資,棄城而逃。
宣帝以為滅賊的要務在於屯積糧食,於是大興屯田守邊,開鑿淮陽、百尺二渠,又在穎水南北築堤成陂,得田萬餘頃。從此之後淮北富庶,倉廩遍地,從壽春到京師,公私軍民屯田者互相連接。
五年春正月,宣帝自淮南回京師,天子使持節慰勞軍隊。
尚書鄧揚、李勝等想讓曹爽建立功名,勸他伐蜀。宣帝勸阻曹爽,曹爽不聽,終於無功而還。
六年秋八月,曹爽撤銷中壘軍的主力營,將主力營的兵歸屬於其弟中領軍曹羲,宣帝以為這是先帝舊制,阻止曹爽這樣做,曹爽不聽。
冬十二月,天子下詔讓宣帝朝會時乘轎上殿。
七年春正月,吳人侵擾木且中,蠻夷華夏之民共萬餘家為避賊寇北渡沔水。宣帝以為沔南接近賊寇,如百姓回沔南,必然還會遭到掠奪,應當暫時留在沔北。曹爽說:「現在不能在沔南修城守地,反而讓百姓留沔北,這不是長遠之計。」宣帝說:「這話不妥。放在安穩之處所則安穩,放在危險之處所則危險,人與物都是如此。所以兵書上說『成敗在於形,安危在於勢』。形勢是駕馭眾人的關鍵,不能不審慎對待。假設吳賊以二萬人防守沔水,三萬人與我沔南諸軍對抗,一萬人猛攻木且中,我們怎麼去援救呢?」曹爽不聽勸阻,終於讓百姓返回沔南。吳賊果然攻破木且中,損失人口以萬計。
八年夏四月,宣帝夫人張氏死。
曹爽用何晏、鄧..、丁謐的計謀,將太后遷到永寧宮,獨攬朝政,兄弟一起掌管禁兵,多培植親黨,屢次改變制度。宣帝無法制止他們,於是與曹爽產生磨擦。
五月,宣帝聲言有病,不參與朝政。當時人編個歌謠說:「何、鄧、丁,亂京城。」
九年春三月,黃門張當私自將宮中才人石英等十一人調出,給曹爽當伎人。曹爽、何晏認為宣帝病重,遂生篡奪君位之心,與張當密謀,企圖顛覆社稷,日期已經商定。宣帝也暗地裡有所準備,曹爽一夥對宣帝也有懷疑。正遇河南尹李勝將到荊州赴任,來拜訪宣帝。宣帝假裝病重,使兩個婢女伺候,拿衣服時衣服落地,用手指自己的口,表示口渴,婢女送來粥,宣帝不拿杯只用嘴喝,粥都流出沾在胸前。李勝說:「眾人以為明公原來的風疾復發,沒有想到貴體病成這個樣子!」宣帝使盡聲氣才繼續說:「年老臥病,死在旦夕。君當屈身守并州,并州接近胡人,應妥善為之戒備。恐怕不能見面了,把兒子師、昭托付給你。」李勝說:「我說的是還忝本州,不是并州。」宣帝故意錯亂其辭說:「君方到并州。」李勝又說:「當忝荊州。」宣帝說:「我年老昏迷,不解君言,今回守本州,盛德壯烈,好建功勳。」李勝出來後對曹爽說:「司馬公已像屍體一樣,臥床不起,只有殘餘之氣,形神已經分離,不值得憂慮了。」以後又說:「太傅不能康復,令人憂傷。」所以曹爽等對宣帝未加戒備。
嘉平元年(249)春正月初六,天子拜祭明帝高平陵,曹爽兄弟都隨從前往。這天夜裡,太白星犯月。宣帝於是上奏永寧太后廢黜曹爽兄弟。當時景帝司馬師為中護軍,率兵屯守司馬門。宣帝在宮門前列陣,經過曹爽門前。曹爽帳下督嚴世上樓,拉開弩弓將射宣帝,孫謙制止他說:「事情結果尚不可知。」三次欲射三次被制止,孫謙拉住嚴世的胳膊肘,使他不得發箭。大司農桓范逃奔到曹爽處,蔣濟對宣帝說:「智囊去了。」宣帝說:「曹爽與桓范內心疏遠,而曹爽智慧不及桓范,劣馬只戀芻豆,必不會用他。」於是使司徒高柔假節,執行大將軍的職責,統領曹爽原兵營,宣帝對高柔說:「君就是當今的周勃了。」命令太僕王觀行使中領軍職責,統領原曹羲兵營。宣帝親自率領太尉蔣濟等布勒軍隊出迎天子,屯兵於洛水浮橋。向天子上奏說:「先帝下詔讓陛下、秦王及臣升於御床前,握住臣臂說:『深以後事為念,今大將軍曹爽背棄先帝遺命,敗亂國家典制,內則越權壓主,外則專權威眾,各種朝廷要職,都安插其親信,原來的宿衛人員,都被排斥廢黜。盤根錯節,日益放縱。又以黃門張當為都監,互相勾結,伺機篡奪。天下洶洶不安,人心危懼。陛下便是寄身於他的權勢之下,哪能長久安寧?這不是先帝詔陛下及臣升御床的本意呀。臣雖老朽,怎敢忘先帝之言。昔日趙高肆意無阻,秦因此而亡,呂雉、霍成君早被剷除,漢朝天下得以長久。這是陛下應該借鑒的史實,今日是臣以生命效忠陛下的時刻。公卿群臣都以為曹爽心中無君,兄弟不宜率兵宿衛宮庭,已奏請皇太后罷其職,皇太后下令照奏章施行。臣已令主持此事的人及黃門令罷曹爽、曹羲、曹訓吏兵,各人以原來的官職爵位回府第。若扣留天子車駕,以軍法論處。臣即支撐病體率兵到洛水浮橋,觀察非常之變。」曹爽壓下奏書不上報天子,留天子宿伊水南,伐樹以為工事,調屯兵數千人守衛。桓范果然勸曹爽擁天子到許昌,傳檄文征天下兵。曹爽不用其謀,夜間派遣侍中許允、尚書陳泰見宣帝,觀望風聲及宣帝旨意。宣帝陳列了曹爽的過失,處理問題只是免官。陳泰回去後向曹爽報告,並勸他遞上奏文。宣帝又派遣曹爽所信賴的殿中校尉尹大目去告知曹爽,說明宣帝意圖,並指洛水發誓,不背諾言,曹爽心裡有點相信。桓范等援引古今事例,千方百計勸說他,他終是不聽,卻說:「司馬公正想奪我的權罷了。我能以侯爵還府第,還不失為一個富家翁。」桓范拍著胸說:「為你受株連,我也要遭滅族之災啊。」曹爽隨即將宣帝的奏文送交天子。接著有司彈劾黃門張當,並揭發曹爽與何晏等謀反的事,於是逮捕曹爽兄弟及其黨羽何晏、丁謐、鄧揚、畢軌、李勝、桓范等,處以死刑。蔣濟說:「曹爽之父曹真功大,不能不留後嗣啊!」宣帝不聽。
事件剛發時,曹爽的司馬魯芝、主簿楊綜斬關奪路投奔曹爽。當曹爽準備向宣帝服罪時,二人哭著勸道:「公處在伊尹周公的地位,挾持天子,仰仗天威,誰敢不從?捨此義舉而到東市就死,豈不痛心啊!」有司上奏逮捕魯芝、楊綜判罪,宣帝赦免了他們,說:「以此勉勵那些忠心侍君的人。」
二月,天子任宣帝為丞相,增封穎川的繁昌、鄢陵、新汲、父城,連前封共八縣,二萬戶,奏事時不提自己的名字。宣帝堅意辭了丞相官職。
冬十二月,加九錫之禮,朝會時不下拜。宣帝辭讓了九錫禮。
二年春正月,天子命宣帝在洛陽立廟,設置左右長史,增加掾屬、舍人滿十人,每年薦舉掾屬任御史、秀才各一人,增加官騎百人,鼓吹十四人,封宣帝的兒子司馬肜為平樂亭侯,司馬倫為安樂亭侯。宣帝因有病不能進宮朝見,每有大事,天子即親自到府第詢問。
兗州刺史令狐愚、太尉王腸與宣帝離心,謀劃立楚王曹彪為天子。
三年春正月,王腸詐稱吳人堵塞塗水,請求發兵討伐。宣帝暗中得知他的計謀,不聽其言。
夏四月,宣帝親自率中軍,乘船順流而下,九天到達甘城。王腸無計可施,在武丘迎宣帝,自縛於水畔,說:「我王腸如有罪,公可用半片竹簡召回,何苦親自來呢?」宣帝說:「因為君非折簡之客啊!」即帶王腸回京師。路過賈逵的廟,王腸高呼道:「賈梁道!我王腸是大魏的忠臣,只有你的神靈知道。」行至項,王腸飲毒藥而死。宣帝逮捕王腸餘黨,盡滅三族,並殺曹彪。將魏宗室的王公都集中安置在鄴城,命有司監督,不得交往。
天子派遣侍中韋誕持節在五池慰勞軍隊,宣帝回京後,天子又使兼大鴻臚、太僕庾嶷持節,策命宣帝為相國,封為安平郡公,宣帝之孫及兄子各一人封為列侯,前後食邑五萬戶,封侯者十九人。宣帝堅意辭讓相國、郡公職銜。
六月,宣帝病重,夢見賈逵、王腸作祟,很是厭惡。秋八月初五,在京師逝世,終年七十三歲。天子著孝服弔喪,喪葬儀式按漢霍光的例子,追贈為相國、郡公。宣帝之弟司馬孚上表陳述了宣帝生前志願,辭去郡公及鍂車京車。九月十八日,葬於河陰,謚號為文,後改謚宣文。死之前寫了關於安葬的遺囑,在首陽山做土墓穴,不起墳,不栽樹;作《顧命》三篇,以平時衣服入殮,不用隨葬器物,後死者不得合葬。安葬照遺囑行事。晉國初建時,追尊為宣王。武帝受禪讓即位,上尊號為宣皇帝,陵墓稱高原,廟號為高祖。
宣帝內心嫉妒而外表寬厚,對人多猜忌,善用權謀,魏武帝察覺宣帝有雄心大志,又聽說宣帝能像狼一樣回首反顧,想試驗他。召來同行,使他走在前面,令他反顧,他面正向後而身不動。魏武帝又曾夢三馬食於一槽,心中很厭惡。於是對太子曹丕說:「司馬懿不是作人臣的人,你以後要防備。」太子平時與宣帝友善,每每庇護他,故得無事。宣帝於是勤於職守,廢寢忘食,以致採樵牧馬人之間,也要走動詢問,因此魏武帝才安心。後來平公孫文懿時大肆殺戮。殺曹爽時,支黨皆夷滅三族,不論男女老幼,姑姊妹女子已經嫁人的都殺掉,最後竟篡奪曹魏天下。
東晉明帝時,王導陪坐。明帝問前世怎麼得的天下,王導就陳述宣帝如何創業,及文帝末年高貴鄉公被害的事。明帝把臉伏在床上說:「如公所說,晉的天下又怎能長久呢?」推究其猜忌殘忍的行為,大致是符合狼顧本相的。