淵加冠,文武兼備,性剛好鬥,遂奪其叔公孫恭之位。曹睿加公孫淵為揚烈將軍、遼東太守。孫權稱帝,使張彌、許晏齎金帛赴遼東,封公孫淵為燕王,欲使其反魏。公孫淵斬張、許二人首級獻洛陽。曹睿封其為大司馬、樂浪公。公孫淵不滿。景初元年,公孫淵見曹睿失德,人心浮動,遂欲自稱燕王。其副將賈範諫曰:“中原待主公以公侯之爵,不可謂不尊,今若背反,名不正言不順,亦不智也。更兼司馬懿慣會用兵,諸葛亮尚不能勝之,況主公乎?”公孫淵大怒,叱武士推出賈範斬首。參軍倫直濺淚諫曰:“賈範之言忠也。近聞種種不詳,主公宜避凶趨吉,不可輕舉妄動,否則必遭災禍!”公孫淵拍案,喝令將二人同斬鬧市。遂改元紹漢,自稱燕王,命卑衍為大將,楊祚為先鋒,起兵十五萬,殺奔遼西。
曹睿急召司馬懿商議。司馬懿奏曰:“陛下勿憂,臣部下馬步四萬,足可破賊。”曹睿曰:“路遠兵少,恐難平復。”司馬懿曰:“兵不在多寡,在將之用耳,臣仗陛下洪福,必擒公孫淵。”曹睿曰:“以卿所料,公孫淵將如何應對?”司馬懿曰:“臣兵至遼東。公孫淵若遠走他國,是其上策;若據守遼東,是其中策;若坐守襄平,是其下策。”曹睿曰:“遼東路遠,卿往返須多少日月?”司馬懿曰:“四千裡之遙,往百日,攻百日,還百日,休整六十日,約一年足矣。”曹睿大喜,即命司馬懿征討遼東。
景初二年,司馬懿令胡遵為先鋒,兵發遼東。這一日,兵至遼東界,早有細作飛報襄平。公孫淵乃令卑衍、楊祚引精兵八萬屯遼隧縣,圍塹二十餘里,密排鹿角,以拒魏軍。先鋒胡遵稟報司馬懿。司馬懿笑曰:“賊軍固守,欲疲我兵。我料賊兵大半在此,巢穴空虛,若棄此直奔襄平,賊必往救,我於中途伏擊之,定獲大勝。”於是,兵馬直往襄平。
遼兵營中,大將卑衍謂楊祚曰:“魏兵來戰,我等堅守不出,彼萬里而來,糧草難續,待他糧盡兵退,我傾巢而出,司馬懿可擒矣。”楊祚曰:“昔日,司馬懿堅守渭水,而退孔明,正是此計也。”二人正在得意,忽人來報:“魏兵直奔襄平。”卑衍大驚曰:“若襄平有失,我等守此何用耶?”遂拔寨而起。
魏兵探馬飛報大帳。司馬懿笑曰:“中我計矣。”遂令夏侯霸、夏侯威各引一軍,埋伏要徑。二將領命,伏兵未久,果見卑衍、楊祚引軍而至。一聲炮響,鐵騎擁出,放馬衝殺,遼兵大敗,卑衍、楊祚奪路而走。奔至首山,迎遇公孫淵,遂兵合一處,回馬再戰。兩陣擺開,卑衍出前罵曰:“賊將!休用詭計,敢與我單獨一戰否?”夏侯霸舉刀上迎,殺不十合,夏侯霸一聲大喝,斬卑衍身首異處,栽落馬下,遼兵大懼。夏侯霸引騎衝殺,公孫淵一路敗入襄平,緊閉不出。司馬懿驅兵馬四面圍困。
不料,秋雨連綿,一月不止,平地水深三尺,糧船自遼河口直達襄平城下。魏兵皆在水中,行坐不便。左都督裴景入告曰:“雨水不停,不如移營前山。”司馬懿變色曰:“捉拿公孫淵,只在旦夕,豈可移營?”遂傳令三軍,再言移營者,立斬。未幾,右都督仇連來告曰:“軍士皆苦不堪言,乞太尉暫移兵營。”司馬懿怒曰:“軍令已下,汝何敢違耶?”遂命斬首,號令轅門。三軍震懼。
司馬懿令城南魏兵,暫退二十里。司馬陳群問曰:“前,太尉攻上庸,八日趕至城下,遂擒孟達。今,帶甲四萬,路行數千,不令攻城,而久居泥濘,又縱賊出南門樵牧,何意也?”司馬懿笑曰:“昔,孟達糧多兵少,我糧少兵多,利在速戰,故兼程而進,突然擊之。今,遼兵多,我兵少,彼飢我飽,不必強攻,日久自敝。我放開一路,任其自走,然後於城外擊之。”陳群拜服。
過數日,雨止天晴,司馬懿夜觀天文,忽見一星流光數丈,自首山東北,墜於襄平東南。司馬懿喜謂眾將曰:“星落處,必斬