曹昂败军退到半途,又为张飞伏兵杀败,士兵损伤众多,幸邓艾闻讯率兵前来接应,救得诸将性命。未几日,李典、吕虏亦率残军败回。
原来,李典、吕虏率军出城,西行百里,前无阻拦,后无追兵,两将困惑不解。李典驻马与吕虏相商,命部下就地安营扎寨,让人打探消息。听闻曹昂大军出城,两将率军绕路奔往弘农,中途为诸葛亮伏兵所败,折兵逾半,两将死战得脱。
曹操西路军十五万兵马,与诸葛亮连战连败,损兵折将,士卒降五万有余,逃到弘农邓艾军营之兵,仅余八万。邓艾见长安诸将安然脱逃,目的已经达到,率军返回洛阳。
曹操见金旋忙于整顿西北诸郡,无暇东进,兵出两路,攻打河北袁氏。命司马懿为北路军主帅,起兵十五万,兵出洛阳,攻取晋阳。命张辽为南路军主帅,起兵十三万,兵出平原,攻取乐陵。
原长安诸郡兵权尽归曹昂、夏侯渊,司马懿大才不得施展。此时大权在握,阅兵点将,威风八面,意气风发,调王双、于禁、文鸯、邓忠、司马师、司马昭六将随行,择日出兵。司马懿行至壶关,暂驻休整兵马,打探晋阳情况。张辽此时也厉兵秣马,准备攻打乐陵。
袁熙闻司马懿大军来攻,命人告急南皮,自与郭图、逢纪等整兵备战。袁尚刚失平原,见曹操两路大军又来相攻,召许攸、审配等商议。许攸曰:“今曹军势大,张辽、程昱、司马懿皆多谋善战之人。吾军接连折兵失地,军心不稳,恐非曹军敌手。金旋势强,可遣使赴长沙求其发兵相救。”
袁尚命审配为使,赴长沙求救。时金旋新得长安,攻防形势大变,边郡只余弘农、宛城、汝南、徐州、下邳。金旋率领三万亲兵返回长沙,调兵遣将,重新布防。命诸葛亮率军二十万屯弘农,姜维率军十七万屯宛城,关羽率军二十万屯汝南,陆逊率军十六万守下邳、都阳,周瑜率军十六万屯徐州。命马超为西凉防御使,官亥、张英为其副将,率五万兵马屯长安,辖长安、西凉、天水、安定、下弁诸郡防务。命董允为安定太守,牛金为安定守备;虞翻为长安太守,王浑为长安守备。
审配赶到长沙,拜见金旋,言求援之意。金旋曰:“既河北危急,袁尚遣使求救,吾应尽些心力。今起兵犯洛阳、定陶,曹操首尾难顾,大军回撤,河北防务轻矣。若汝主兄弟同心协力,众志成城,何惧曹兵。若至山穷水尽之境,或从北海奔都阳,或从海道奔会稽,吾起兵马接应。吾修书一封,汝带归汝主。”
审配大喜,返南皮奉上金旋之书,细述金旋之言。袁尚拆书阅,书上只书六言,“兄弟合力,其利断金,合则俱荣,不和俱败,摒其私利,可保不败。”袁尚知金旋好意,遣使持书示袁熙、袁谭,金旋之书正中其心病。两人观书皆服金旋之能,于千里之外明察河北之弊端。兄弟三人放下私利,携手抗敌。
北海郡与金旋接界,袁尚原惧金旋乘势取地,重兵陈于北海,见金旋无吞并之意,命袁谭尽撤北海守兵,前往乐陵。又命沮授发北平、襄平精兵两万赴晋阳相助。
司马懿兵到晋阳,晋阳兵将远非司马懿之敌,连战连败。袁熙大忧,不敢出战。司马懿见代县之地,防守空虚,使文鸯、司马昭率军五万攻打代县。代县守军尽被撤至晋阳,城内兵卒不足一万。逢纪察觉曹兵动向,谓袁熙曰:“司马懿分军攻代县,为迫晋阳守军回救。今两军势力相若,不如决一死战,胜负未可知也。”
袁熙集结兵将,曰:“晋阳被围多日,司马懿又分军击代县断吾军归路,今出与曹贼决一死战,胜负在此一举。”袁熙尽出城中兵与司马懿大战。司马懿以河北军多日坚守不出,出其不意,前阵竟被河北兵冲乱,约束不住。司马懿知此战为河北军绝地反击,率王双诸将奋力拼杀,奈前阵已乱,后军立阵不往,竟为所败,折军万余。
司马懿命攻代县兵马返回,合兵攻打晋阳。司马懿谓众将曰:“今若败晋阳守军,代县、易京、北平、襄平四地守兵不足三万。诸将努力,攻下晋阳,长驱直入河北重地,取袁尚兄弟之首。丰功伟绩,指日可待。”
司马懿遣使下决战书,袁熙见书与逢纪等商议。逢纪曰:“晋阳为河北大门,晋阳若失,河北危矣。然司马懿若使上将深入,代县若失,南皮形势亦危。今新败曹兵,士兵士气高涨,可与之决战。若胜,则晋阳之急立解,若败,则兵退代县,以为后路。”袁熙遂决,批书决战。
次日,两军在晋阳西平原地带,对阵决战。袁熙知单打独斗诸将非曹将敌手,挥军混战。两军相逢勇者胜,河北军新胜,豪气高昂,人数略少,亦战亦勇。大战半日,不分胜负。文鸯杀得性起,持枪只望人多处厮杀,部下为其抛于身后,单枪匹马撞入敌阵,为河北兵所围。文鸯马走如飞,百米内连逃河北将官十余名。河北兵将见其神勇难敌,命众兵列阵包围,聚弓兵欲射之。文鸯势危,眼见不免,长叹曰:“吾平生鲜逢敌手,不意今日为兵卒所围,毕命于此。”时文鸯所部兵马杀透重围赶到,杀散弓兵,救得文鸯。文鸯身前身后,尸体遮地,不知杀了多少河北兵将。文鸯见部兵来到,气力复苏,战心又起,率部下望河北军旗处杀来。
文鸯率军杀到河北军旗处,见袁熙正于军旗下驻马观战,策马径取袁熙。袁熙亲兵挡住,文鸯奋起神勇,击杀兵卒无数。袁熙见亲兵抵挡不住,拨马往回奔去。文鸯命部下砍倒军旗,自率百余骑往袁熙退路赶去。袁熙命亲兵拼死圈住文鸯,以弓兵围射,文鸯中百余箭阵亡。文鸯部下砍倒军旗,往救文鸯,已是不及。
河北诸将见军旗倒下,以为中军有失,军阵立乱。曹兵见状士气大振,此长彼消。河北兵大败,收势不住,晋阳也为曹兵趁势所抢。袁熙集结败军逃往代县。
此战死伤者众,曹军战死两万余众,袁熙折兵五万余。文鸯部下抢得文鸯尸体回营,报于司马懿。司马懿见文鸯身中百箭,浑身皆血。闻文鸯部下说起文鸯杀入敌阵,几进几出,砍倒军旗,立下大功,却为弓兵围射而死。司马懿摆文鸯尸于帅帐案上,与诸将拜奠。
曹操接报,伤心大怮,命葬文鸯于许昌南山,设祠供奉。为表其忠勇,谥封忠勇侯,封其父文钦为界桥侯。