409年(晋义熙五年),刘裕上表请伐南燕,遂兵出建康,开始北伐。
409年,刘裕为建功业,博声望,上表欲北伐南燕,虽朝中刘毅等人极力反对,但刘裕仍决意亲自出征,率水师自建康出发,从淮河进入泗水,到达下邳后,改由陆路行至琅琊(今山东临沂)。刘裕为防燕兵断其后路,沿途筑城留兵,步步为营。而燕主慕容超不作战斗准备,既不派人把守关隘,也不坚壁清野,致使晋兵顺利通过天险大岘(今山东临朐东南的穆陵关)。
409年夏,刘裕兵达东莞(今山东莒县),慕容德率兵4万迎击,屯于临朐(今山东临朐),双方会战于临朐城南一片平原。慕容超因其骑兵善于在平原驰骋作战,遂倾城出动,刘裕则以混合军种迎击,双方酣战一天,尸堆成山,血流成河,仍难决胜负。刘裕遣胡藩、檀韶、向弥等率轻兵从小路突袭守备空虚的临朐城,不久城克。刘裕与胡藩的前后夹攻之下,燕军大败,慕容超仓皇退回广同(今山东益都西北)。
晋军乘胜攻克广固外城,燕王只得退守小城。刘裕命兵士筑三丈高墙,挖三道深沟围困广固。慕容德曾派使臣向后秦求救,未求得援兵。410年,广固被围日久,城中人心惶惶,饿病折磨之下,陆续有人出降。夏,刘裕派军四面出击,攻破广固城,生擒慕容超,并将其送建康斩首。南燕亡。