东晋的时局一日不得安宁,最后的一点本钱,也被消耗无存。桓玄拒绝司马元显的节制,在元兴元年(公元402年)兴兵从江陵顺流东下,攻入建康,把司马道子、司马元显和刘牢之这些掌握东晋大权的人,全部杀光。
次年十二月,他废掉晋安帝,自立为帝,国号为楚。只过三个月,刘裕被众人推为盟主,带着北府兵南下,将桓玄击败,重新迎立晋安帝,这一次,东晋的大权就落到了刘裕的手中。
桓玄是军阀,刘裕也是军阀。谢安之后,醉生梦死的孝武帝、口不能言的安帝之流,八字再好,也只有听从军阀发号施令的份。刘裕比桓玄的高明之处,在于他并不急于称王、做皇帝,而是先把目光投到了扩充自身和消除异己之上,这一点或许与他贫苦的出身有关。他在义熙元年(公元405年)彻底摧毁桓氏的余党后,开始筹划北伐。慕容超在这个时候与东晋交兵,我不想说他是不识时务,可实际上大致如此。
刘裕率领水军从建康北上,沿淮河入泗水,进据琅琊。公孙五楼向慕容超建议说:“晋军初来,士气旺盛,不可与之相争。我军应坚守大岘关(今山东沂水北穆陵关)险地,再从海路断绝晋军的粮道,另外派大将段晖率兖州军邀击,使其腹背受敌,此乃上策;坚壁清野,据城固守,此乃中策;放刘裕入大岘关,出城迎战,此乃下策。”
慕容超不接受,只说:“我京都如此殷实,怎可坚壁清野?不如诱敌深入,到平原上用精骑兵冲击他们,必能取胜。”众臣苦谏,慕容超只是不听。
刘裕大军轻易通过天险大岘关,势头再难遏止。慕容超派段晖等以五万步骑兵进据临朐,他又派公孙五楼带兵前往川源,截断晋军水源,却被刘裕的前锋军队抢先一步,大败而回。
刘裕与段晖的南燕军主力相遇于临朐城南,慕容超闻讯,又亲自带上四万步骑兵前去督军。两军激战多时,不分胜负。这时刘裕的参军胡藩向刘裕建议:“燕兵主力都已出城作战,临朐城中必然空虚,我愿自引一支军队抄小道到燕兵身后,拿下临朐。”刘裕对此计十分赞许。胡藩便以奇兵突袭临朐,号称是从海路前来的轻兵,临朐守军大惊,没怎么抵抗就丢了城。
刘裕立即挥师猛攻城外的南燕军军队,燕兵大败,段晖阵亡。慕容超惶恐中逃回广固,晋军乘胜追击,攻破外城,包围了广固内城。刘裕命兵士挖沟三层,筑起高达三丈的围墙,把广固团团困住。
慕容超苦守无援,出击又屡屡失败,只好向刘裕求和,愿意将大岘关以南的土地全部割给东晋,并向东晋称藩。刘裕志在破城灭燕,自然不会同意。
慕容超坚持不降,却挡不住城内守兵士气的日益低落。第二年(公元410年),刘裕全军四面急攻,南燕尚书悦寿开门迎入晋军。慕容超率数十骑突围出逃,被擒后送往建康斩首。刘裕虽没有像拓跋珪那样搞大型活埋,却也将城内的三千鲜卑贵族全部屠杀。慕容鲜卑长达近一个世纪的奋斗故事,在南燕灭亡之后,终于收场了。