公元409年正月一日,慕容超在东阳殿朝会群臣。当舞乐响起时,慕容超感叹舞乐不齐,就想到到东晋去掳掠一些人来充当乐伎。于是,慕容超根本不听群臣劝阻,派将领慕容兴宗、斛谷提、公孙归等于同年二月率骑兵入侵东晋的宿豫(今江苏省宿迁市宿豫区)。
慕容兴宗等攻克了宿豫,大肆抢掠一番,然后挑选两千五百名男女,带到南燕让太乐教习歌舞。不久,慕容超又派公孙归等人侵犯东晋的侨郡济南郡,擒拿太守赵元,又掳获一千多人而去。为防南燕再次发兵来袭,东晋自彭城(今江苏省徐州市)以南一带的百姓都结堡自守。
南燕不断侵犯东晋边界的消息传到建康(今江苏省南京市),东晋朝廷命并州刺史刘道怜驻防淮阴(今江苏省淮安市),以防南燕再次来侵。刘道怜是平定桓玄之乱的功臣刘裕的弟弟。刘裕当时是扬州刺史、中军将军,在东晋朝廷中威望很高。
三月,刘裕上疏司马德宗,提出要讨伐南燕慕容超。朝会之上,群臣都认为不可,只有左仆射孟昶、车骑司马谢裕、参军臧熹等认为一定能取胜,赞同刘裕出兵。司马德宗只有准奏。刘裕便着手准备出征事宜。刘裕先任孟昶为监中军留府事,又任王镇恶为中军参军。
四月十一日,刘裕率领的北征大军从建康出发,一路从淮河入泗水,于409年五月到达下邳(今江苏省睢宁县)。刘裕将船舰、辎重留在下邳,带领将士徒步朝琅邪(今山东省临沂市)方向进发。刘裕一路经过之地,都修筑城池,留下兵马驻守。军中有将领对刘裕的做法非常担心燕国人堵塞大岘山(今山东省临朐县南沂山),或者坚壁清野。刘裕胸有成竹地保证燕国人至多在临朐(今山东省临朐县)布防,或者退守广固(今山东省青州市),一定不会据守险要、坚壁清野,我敢向诸位作保。"
南燕皇帝慕容超听报刘裕率兵来伐,忙召集群臣在东阳殿商议对策。征虏将军公孙五楼提出了上中下三策,他认为晋国利在速战速决,应当占据大岘山,拖延时日。然后再挑选两千名精锐骑兵,沿着海边向南推进,断绝他们的粮道。同时令驻屯梁父(今山东省泰安市南)的兖州刺史段晖率领兖州兵马,沿着梁父山从东边攻下,让晋兵腹背受敌,这是上策。传令各地守宰据险固守,算好所需物资,其余全部焚毁,连田间禾苗也全部铲除,让敌人什么也得不到。到那时,晋兵没有供给,又求战不得,旬月之间,可以坐而获胜,这是中策。把敌人放过大岘山,我们再出城迎战,这是下策。
公孙五楼虽是一位奸臣,但此次所提的三个对策却是有一定道理的,但慕容超根本不能用其上策或中策,却选择了下策。
辅国将军广宁王慕容贺赖卢苦劝慕容超,慕容超就是不听。太尉桂林王慕容镇还不死心,再劝慕容超道∶"陛下一定认为骑兵利于平地作战,但也应当到大岘山之南迎战敌人,如果不能取胜,还可退守大岘山。无论如何不能让敌人到达大岘山之北,自行放弃险要之地。"慕容超仍然不能听从。慕容镇退出后,对领军将军韩掉说道∶"陛下不能迎头痛击敌人,又不肯坚壁清野,反而让敌人进入腹地,坐等被攻被围,就像当年的益州刘璋。今年国家一定灭亡,我也只有一死。"慕容镇这话传到慕容超的耳朵里,慕容超大怒,下旨将慕容镇投入狱中。慕容超还传令驻守莒城(今山东省莒县)的徐州兵马以及梁父的兖州兵马撤退,加强广固的防御,严阵以待。
六月十二日,刘裕所部进抵东莞(今山东省沂水县东北)。刘裕又马不停蹄一路北上,直奔大岘山。刘裕率部安全经过大岘山,没有看到一个南燕兵马。刘裕举手指天,掩盖不住心中的喜悦。左右对刘裕说道∶"主公没有看到敌人,反而感到高兴,这是为何?"刘裕说道∶"大军已经通过险地,将士都有必死之心。田间有众多粮食,兵马也不缺粮草,敌人已经在我的掌中了。"
再说南燕皇帝慕容超当时果真派公孙五楼、慕容贺赖卢及左将军段晖等率五万步骑兵驻中在临朐。当慕容超得知刘裕大军已经通过大岘山,这才感到无比的担忧。慕容超于是又亲自率领四万步骑兵前往临朐。慕容超对驻屯此处的公孙五楼说道∶"应当占据临朐县南边的巨蔑水,不然晋兵来了,,我们就会没有水源,仗也就无法打了。"公孙五楼便率部据守巨蔑水。这时刘裕的前锋孟龙符已经到达巨蔑水,随即与公孙五楼发生激战。孟龙符作战勇猛,很快将公孙五楼击破,公孙五楼率部撤退。
不久,刘裕所部到达临朐。刘裕用四千辆战车,从左右两翼徐徐向前推进,与南燕兵马在临朐城南交战。战斗非常激烈,直到中午时分,胜负未分。参军胡藩建议效仿韩信击败赵国的战术,用奇兵从小道攻取临朐城。刘裕采纳这个建言,派胡藩、咨议参军檀韶 、建威将军向弥率领一支兵马,悄悄绕到南燕兵马身后,向临朐城发起攻击,并声称是从海路赶来的另一支兵马。向弥身披铠甲,率先攀城而上,很快将临朐城攻克。消息传到慕容超那里,慕容超大为吃惊,也非常害怕,竟单枪匹马奔到正在城南作战的兖州刺史段晖的军中。这时刘裕也传令奋力进击,南燕兵马大败,段晖等十位将领全部被杀。慕容超只得逃回广固城。刘裕缴获慕容超的玉玺、车辇及车辇上的豹尾。
刘裕在临朐城取得初胜,并没有就此休整,而是传令继续北上直到广固城外。六月十九日,刘裕所部又攻克了广固的大城,慕容超退保小城。刘裕也知道广固小城非常难攻,决定修筑长长的围墙把广固小城包围,围墙高三丈,还挖深沟三道。刘裕决定长期围攻广固小城,还在城外安抚归降兵民,从中选拔贤能,当地汉人、夷人都非常欢迎。刘裕又传令在齐地征粮,停止长江、淮河的粮草供应。
广固小城中的慕容超此时已无力出城交战,突然想到自己曾经向关中的强国后秦称藩,现在国家有难,应当向后秦求救。慕容超派尚书郎张纲悄悄出城,前往长安,向后秦天王姚兴请求援救。慕容超还赦免了桂林王慕容镇,并任慕容镇为录尚书事、都督中外诸军事。
刘裕对一直不能攻克广固十分着急,忽听左右来报,城中有两人跳越城墙来降。刘裕一问才知是南燕的尚书垣尊与兄弟垣苗。二人本是慕容超的心腹,因实在不堪围困,而前来归降。也许从垣尊、垣苗兄弟口中,刘裕得知慕容超已派尚书郎张纲前往长安向后秦搬兵。军中将领对刘裕说道∶"如果得到张纲,令其修造攻城之具,广固一定可以攻克。"刘裕于是传令于途中拦截张纲。
当时,前往长安向后秦求援的南燕尚书郎张纲当时正在东返途中,当时的泰山郡已被东晋收复,各大要道严加设防,将张纲给截获了。刘裕得到张纲,用攻城的楼车将张纲送上城头,让南燕的守城将士看清,然后再绕城一周,并对城中大声喊道∶"刘勃勃已经大破秦军,秦国没有兵马前来援救。"广固城中的守将无不大惊失色。当然城中的南燕皇帝慕容超还在坚守,城头将士一时也没有弃城。
当时东晋不断有援兵来到广固,也不断有使者来到广固,刘裕没有让他们直接来到广固城下,而是于夜间悄悄前往迎接,然后于第二天再大张旗鼓地回到广固。刘裕的这一做法,让广固城中的将士看到不断有大量援兵来到。不仅如此,北方的民众前来给刘裕运送粮草的人,每天都有上千人。刘裕对广固城的围攻也越来越猛烈,南燕的重臣张华、封恺都被刘裕擒获。城中的慕容超终于坐不住了,派人出城与刘裕讲和,愿割大岘山以南领地,并愿向东晋称藩。刘裕此时根本不接受。然而就在这时,后秦终于有所行动了。
后秦当时也是内忧外患,而对藩国南燕的求援,姚兴只能先派使者前往刘裕军中,以图能够让刘裕退兵。刘裕将后秦的使者叫到面前,说道:"你回去对你们的天王姚兴说,我攻克燕国之后,休兵三年,然后就取洛阳、关中。如果你们的兵马要自送上门,那就快点吧。"
后秦使者回到长安后,南燕的尚书令韩范也来到了后秦。韩范极力向姚兴请求派援兵帮且南燕。当时姚兴虽然正准备前往讨伐胡夏的刘勃勃,但还是派卫将军姚强率一万骑兵前往援救南燕。姚兴令姚强与韩范先到洛阳与东平公姚绍会师,然而再一同东进。韩范带着后秦的救兵一路东行,以为南燕这回必定有救了。可是让韩范没有想到的是,他与姚强还没有到达洛阳,姚兴的急令就送达姚强军中。原来御驾亲征的姚兴惨败于刘勃勃,其急令是要姚强停止援救南燕,迅速回师长安。
韩范当时看到秦国收回救兵,已对南燕失去信心。九月,韩范到达广固城外的刘裕大营。刘裕非常高兴,连忙带着韩范沿着广固城循城一周。城内坚守的将士正在苦苦等待韩范搬来的救兵,没想到不仅没有看到救兵来,反而看到韩范投降了刘裕。南燕将士一时士气低落,无心再战。
410年二月,广固城内的南燕君民实在无法支撑。慕容超决定派广宁王慕容贺赖卢、征虏将军公孙五楼与城外晋兵交战。二人当然不敢公开率兵出城,而是在城内悄悄挖掘地道,偷袭城外晋兵。慕容贺赖卢、公孙五楼刚从地道里出来,便被刘裕的围城兵马击败,二人只得再次退入城中。
二月五日,包围广固城将近八个月之久的刘裕认为攻城时机已到,传令所部兵马向广固城发起最后的进击。南燕尚书悦寿看到大势已去,主动打开城门,迎接晋兵入城。慕容超带领左右数十名骑兵突围而走。刘裕派人追击,终将慕容超擒获。慕容超被带至刘裕的大帐前,刘裕责备慕容超不降之罪。慕容超神色自若,并不乞降,只求刘裕转告当年曾经来投南燕的刘敬宣,请刘敬宣为其照顾母亲。
广固城终于攻克了,刘裕想到自己竟然在这个城池面前包围了近八个月,耗尽大量人力物力,不禁怒从心边起。刘裕把不能及时攻克广固的愤恨全部加到广固城的兵民身上,刘裕决定将城中兵马全部挖坑活埋,而将他们的妻女赏与所部将士。韩范劝阻道∶"晋室南迁之后,中原鼎沸,士人百姓没有依靠,遇到强大的首领只好依附。既然成为君臣,就当全力为之尽忠。广固城中的士人百姓也都是当年晋朝的子民,现在王师前来吊民伐罪,反而坑杀百姓,这让百姓往哪里去?我担心西北一带(指后秦)的百姓也不会再有期盼了。"刘裕听后,意识到自己的想法非常错误,立即肃然起敬,诚恳地向韩范致歉。尽管如此,刘裕还是下令杀掉王公以下三千多人,有一万多家被抄。刘裕还传令将广固城墙摧毁,并将慕容超押至建康(今江苏省南京市)问斩,南燕至此灭亡。
刘裕是个不得了的人物,若非天不加寿,极可能完成天下一统。