渊带着败兵逃入襄平城,闭门坚守不出。魏兵四面合围。
当时正值秋雨连绵,持续了一个月不停,平地上水深三尺,运粮船从辽河口一直通到襄平城下。魏兵都在水中,行动坐卧都不得安宁。左都督裴景进帐报告说:“雨水不停,营中泥泞,军队不能停留,请求移到前面的山上。”司马懿发怒说:“捉拿公孙渊只在旦夕之间,怎么可以移营?如果再有人敢说移营,就斩首!”裴景唯唯诺诺地退了出去。过了一会儿,右都督仇连又来报告说:“军士们苦于水患,请求太尉将营地移到高处。”司马懿大怒说:“我的军令已经发出,你怎么敢故意违抗!”立即命令将他推出去斩首,将首级悬挂在辕门外,于是军心为之震慑。
司马懿命令南寨的人马暂时后退二十里,让城内的军民出城打柴放牧。司马陈群问道:“以前太尉攻打上庸的时候,兵分八路,八天之内就赶到城下,于是生擒了孟达并取得了成功。现在我们带着四万甲兵,走了几千里路来到这里,却不让我们攻打城池,反而让我们长久地呆在泥泞之中,又放纵贼兵打柴放牧。我实在不知道太尉是什么主意?”司马懿笑着说:“你不懂得兵法吗?以前孟达粮食多而兵力少,我们粮食少而兵力多,所以不能不速战速决。出其不意地突然攻击他,才能取胜。现在辽兵多而我们兵少,贼兵饥饿而我们饱食,何必费力攻打呢?我们应当让他们自己逃走,然后趁机攻击他们。我现在放开一条路,不断绝他们的柴薪和放牧,就是为了让他们自己逃走。”陈群听后拜服。
于是司马懿派人到洛阳去催粮。魏主曹睿设朝议事,群臣都上奏说:“近日秋雨连绵,持续了一个月不停,人马都已疲劳,可以召回司马懿,暂且罢兵。”曹睿说:“司马太尉善于用兵,面临危难能够随机应变,多有良谋,捉拿公孙渊指日可待。你们何必担忧呢?”于是不听群臣的劝告,派人将粮食运送到司马懿的军前。司马懿在寨中又过了几天,雨停天晴。这天夜里,司马懿走出帐外,仰观天文,忽然看见一颗星星,其大如斗,流光数丈,从首山的东北方坠落到襄平的东南方。各营将士无不惊骇。司马懿看见后大喜,对众将说:“五天之后,星星坠落的地方必将斩杀公孙渊。明天可以合力攻城。”
众将得令后,第二天清晨就引兵四面合围,筑土山、掘地道、立炮架、装云梯,日夜不停地攻打。箭像急雨一样射入城中。公孙渊在城中粮食耗尽,开始宰杀牛马来充饥。人人怨恨,都没有了守城的决心,想要斩杀公孙渊的首级,献城归降。公孙渊听到这个消息后非常惊恐忧虑,慌忙命令相国王建、御史大夫柳甫前往魏寨请求投降。两人从城上系下绳子来到魏寨告诉司马懿说:“请太尉后退二十里,我们君臣自会来投降。”司马懿大怒说:“公孙渊为什么不自己来?这太无理了!”他叱令武士将两人推出去斩首,将首级交给他们的随从带回。随从回报给公孙渊后,公孙渊大惊失色,又派侍中卫演来到魏营求和。司马懿升帐接待他,并让众将立在两边。卫演跪着膝行前进到帐下报告说:“希望太尉息怒。我们会在约定的日期内先送世子公孙修来当人质,然后君臣会自缚前来投降。”
司马懿说:“军事大要有五:能战当战,不能战当守,不能守当走,不能走当降,不能降当死!何必送儿子为人质呢?”他大声呵斥卫演回报公孙渊。卫演吓得抱头鼠窜而去,回报给公孙渊。公孙渊大惊,于是与儿子公孙修密议妥当,选下一千人马。当夜二更时分,他们开了南门,往东南方向逃走。公孙渊见无人阻拦,心中暗喜。然而行不到十里,忽然听到山上一声炮响,鼓角齐鸣,一支军队拦住去路,中央正是司马懿,左有司马师,右有司马昭。二人大叫道:“反贼休走!”公孙渊大惊,急忙拨马寻找逃路。但胡遵的兵马早已杀到,左有夏侯霸、夏侯威,右有张虎、乐綝,四面围得铁桶相似。公孙渊父子只得下马投降。司马懿在马上对众将说:“我前夜丙寅日,看见大星落在这里,今夜壬申日应验了。”众将纷纷称贺说:“太尉真是神机妙算啊!”司马懿下令斩首公孙渊父子,他们在对面接受了这一惩罚。之后,司马懿率领军队攻取襄平,在还未到达城下时,胡遵已经引兵入城。城中的人民焚香拜迎,魏兵全部入城。司马懿坐在衙上,将公孙渊的宗族以及同谋的官僚等人全部处死,共计七十多颗首级。然后出榜安民。有人告诉司马懿说:“贾范、伦直曾苦劝公孙渊不要反叛,但都被公孙渊所杀。”司马懿于是封赏了他们的墓地并优待他们的子孙。接着,他将库内的财物赏赐给全军士兵,然后班师回洛阳。
在魏国