当初,孙恩造反,数次被刘裕击败,被迫投河自尽,他的妹夫卢循接掌了他的部众,继续反抗东晋。卢循又多次败给刘裕,但他没有选择自尽,而是率军南下,攻打力量相对薄弱的广州,生擒刺史吴隐之,占据了那里。当时晋室朝廷刚经历了桓玄之乱,也没有能力讨伐卢循,就任命他为广州刺史,任命他的姐夫徐道覆为始兴郡太守,希望能把他们招安。
相安无事了几年,徐道覆贼心不死,他得到刘裕率师北伐、建康空虚的消息后,派人力劝卢循偷袭建康,但卢循没有同意。徐道覆亲自找到卢循,劝他道:“躲在岭南实非长久之计,我们的将士也思家心切,利用他们攻击留守建康的何无忌、刘毅,必是绰绰有余。如果今天不行动,等刘裕平灭三齐之后,我们终究难以保全。如果你不起兵,我将自己起兵。”卢循觉得割据广州也挺好,实在不愿意发兵,但经不住徐道覆的劝说,终于同意了。
卢循和徐道覆攻打长沙郡、南康郡、庐陵郡、豫章郡,顺利攻下,这些郡的太守、县令(长)纷纷弃城逃跑,晋廷大惊,急召刘裕回援京师。刘裕这个时候已经攻破了广固,正准备乘胜攻打后秦,收复司州、雍州,现下突然得到了告急诏书,这个闹心啊,但京师不能不救,他任命韩范为都督青州八郡诸军事,兼燕郡太守,任命封融为渤海郡太守,檀韶为琅琊郡太守,然后率大军回援建康。
江州刺史安成公何无忌从寻阳顺赣江南下讨伐叛贼,义熙六年(410)三月二十日,两军在豫章郡(今江西南昌市)遭遇。何无忌登上指挥舰,指挥部队作战,可正在这时,突然刮起了一阵西风,指挥舰等舰船被吹到了东岸徐道覆一侧,徐道覆大喜,他的舰船比朝廷的个头大,他就命士兵们用自己的大船撞击朝廷小船,朝廷船只纷纷被撞毁沉没。何无忌大喊道:“拿符节来!”手下给他送上符节,他手持符节,面不改色,继续指挥作战。徐道覆命弓箭手放箭,万箭齐发,何无忌身中数箭倒在血泊之中,死的时候也仍然紧握符节。
刘裕得到何无忌被杀的消息,命令将士脱掉铠甲,轻装急行,日夜兼程,于四月二日到达建康。
豫州刺史刘毅要和刘裕争功,不听刘裕劝告,亲率两万人马从姑孰西上,迎击叛军。这时候,卢循已经和徐道覆合兵一处了。五月七日,刘毅军和卢循军遭遇,两军大战,刘毅军不敌,被杀被俘数人,刘毅仅带领数名随从逃入山林。叛军连克江州、豫州,声威大震,部众达到十多万人,部队水上、陆上连绵近百里。
刘毅战败的消息传到京城,朝廷再一次大乱。因为刘裕的北伐军减员严重,生存下来的也不是负伤就是染病,已经无力再战,左仆射孟昶便建议他带着皇帝司马德宗向北躲避,刘裕坚决不同意。孟昶认为是自己当年坚决支持刘裕北伐,才造成了今天京师面临崩溃的境地,竟然服毒自尽了。刘裕发出悬赏告示,招募兵马,同时征调民夫,加固石头城。
五月十四日,卢循大军抵达淮口。刘裕对属下说道:“如果叛军从新亭向京师进攻,双方胜负难料;如果叛军驻扎到西岸,他们必败无疑。”
徐道覆建议从新亭登陆,进攻建康,但卢循求稳,坚决不同意,于是叛军驻扎到了蔡洲。徐道覆仰天长叹。
五月十五日,刘毅终于回到建康,此时他的随从已死亡殆尽,刘裕对他劝慰一番。
刘裕命参军沈林子、徐赤特驻守长江南,切断通往石头城的道路,命令他们只能防守,不能出战。但徐赤特不听沈林子的劝告,率军攻击叛军,被打得大败,幸亏朱龄石率军赶到,叛军才稍稍后撤。刘裕斩了违背命令的徐赤特。
这时候,叛军的粮食供应不上了。军中缺粮,又抢不到什么粮食,卢循期望的建康城中发生的巨变也没有发生,他便对徐道覆说道:“我军已经困乏,不妨回到寻阳,然后再夺取荆州,这样,三分之二的领土将掌握在我们手中。我们可以日后再和刘裕比拼。”七月十日,他率军出发回寻阳,留下大将范崇民率五千人驻守南陵。
七月十四日,刘裕派王仲德、刘钟、蒯恩、孟怀玉等追击卢循,然后命孙处、沈田子(沈林子的哥哥)率水师三千人从海上南下,攻击番禺,使叛军无家可归。十月十四日,刘裕率刘藩、檀韶、刘敬宣讨伐卢循。他命刘毅留守京城,处理朝中日常事务。
荆州刺史刘道规命咨议参军刘遵攻打徐道覆,刘遵以少胜多,徐道覆大败,乘小船逃回了湓口。
十一月二日,孙处率水军突然出现在广州,叛军疏于防护,孙处当天即攻下城池,杀死了卢循的同党。他命沈田子继续进攻岭南郡县。
十二月二日,卢循、徐道覆集结了数万人马顺长江而下,要直取建康。他们声势浩大,水面上舰船绵延数里,一眼望不到边,于是刘裕想到了火攻之计。他命人在长江南岸准备燃料,然后在北岸用巨型弓箭向叛军放箭,使舰船不敢前进,这时候突然刮起了西风,叛军舰船被逼向南岸,南岸这边朝廷军队赶紧把事先准备好的燃料投向叛军舰船,舰船瞬间起火,火借风势,浓烟冲天,叛军纷纷跳河求生,全线溃败。卢循率残兵败将退守左里,在那里修筑防御工事,负隅顽抗。
十二月十八日,刘裕率军抵达左里,向叛军发起冲锋,但不能攻克。刘裕急得挥舞指挥旗,命令部队进攻,但他用力过猛,加上风势过大,指挥旗的旗杆突然折断,旗子掉落水中,周围人大惊,因为这是不祥之兆,只有刘裕不慌不忙,他笑着对大家说道:“当年讨伐桓玄的时候,指挥旗也曾折断,但桓玄还是被消灭了,今天这一幕重现,是吉兆。”刘裕下令全力进攻,朝廷军受鼓舞,个个奋勇争先,如猛虎下山,叛军不敌,阵地被攻陷,被杀死、淹死一万多人。卢循乘坐轻便小船逃向了广州,徐道覆逃向始兴郡(今广东韶关市),刘裕派刘藩、孟怀玉追击。
徐道覆回到始兴郡,这时候他手下只剩下一两千人,并且都已经疲惫不堪。孟怀玉率军抵达始兴城下,徐道覆勉强支撑了数日。义熙七年(411)二月五日,孟怀玉率军攻破城池,徐道覆被晋军团团包围,最终被乱刃刺死。
卢循边撤退边收拢残兵败将,又聚集了数万人,向番禺发起了进攻,准备收回番禺。孙处坚守城池,攻防战连续进行了二十多天。沈田子率军前来救援,和孙处内外夹击,卢循大败,被杀死一万多人。
卢循率残军逃奔交州,于四月二十四日抵达交州州府龙编(今越南河内东)南的一个渡口。交州刺史杜慧度坐镇城中,把家里的金银财宝发给将士,鼓励他们英勇杀敌。杜慧度也采用了火攻之计,卢循战船顿时火光四起,士兵死伤无数。卢循知道自己已经是穷途末路,便杀死妻妾,然后跳河自尽了。杜慧度命人把卢循的尸体打捞起来,砍下他的人头,然后又杀死了卢循的父亲和儿子,把人头装入木匣,送往建康。卢循、徐道覆之乱终于被扑灭。