义熙六年十月,自七月以来,短短三个月时间打造战船,此时刘裕也整军完毕,着手命刘毅镇守后方,他自己于十月中旬亲率兖州刺史刘藩、宁朔将军檀韶等沿水路进攻卢循。
同月下旬,徐道覆再攻江陵,又被刘道规击溃,溃退至盆口,王仲德等听闻刘裕主力南下,于十一月攻击守卫南陵的卢循部将范崇民,大获全胜。
同时,孙处也送来军报,其趁着番禺守军防备松懈之机,傍晚时分下令焚其水师,天亮攻克番禺。
值得一提的是,当初刘裕派孙处出征时,众人都不认同,正是刘裕的坚持,才促成了孙处的成功。
而就在刘裕南下的同时,卢循此时同样整军备战,刘裕本于长远之计的打算,不急于进攻,而是屯兵雷池。
卢循整军备战之时宣扬说不攻雷池,要顺流而下,刘裕担心其兵败后可能自京江窜逃入海,于是预先派王仲德统舰船二百艘于吉阳下断之,截断其入海通道。
十二月,卢循、徐道覆率众数万,自水上来攻,刘裕派出所有的轻快斗舰,亲自持幡擂鼓,命众军合力迎击,又派步骑兵登陆西岸。
但是离奇的事情发生了,右军参军庾乐生居然乘舰不进,被刘裕斩首示众,于是众军踊腾争先,奋勇杀敌。
当时晋军中大量配置万钧神弩,所到之处,莫不摧陷,不过因受到当日的风向影响,卢循的水师被迫停靠西岸,其舰船被刘裕预先派出的部队全部焚毁。
火势蔓延之下,卢循、徐道覆力竭大败,晋军追击至夜间才回师,卢循等逃回寻阳。
说起来,当初分派步军于西岸之时,诸将都深感不解,直到目睹卢循等在火攻下的溃败,这才心悦诚服。
雷池战后,刘裕下令召回王仲德担任先锋,留辅国将军孟怀玉守雷池,卢循试图撤退至豫章,于是在左里设栅防守,做出反击姿态。
刘裕闻讯率军抵达左里,在战斗前,军中的麾竿突然折断,竿上之幡沉入水中,诸将认为这是不祥之兆,心怀忧惧。刘裕不以为意,反而欢笑说:“往年的覆舟山之战,幡竿也折断了,现在又出现了这种情况,贼人一定会被打败了。”
当即下令攻栅,力战破敌,卢循乘船逃走,其部卒被杀及投水溺死者多至上万,刘裕招抚降者,宽赦被逼迫跟随卢循的人,派刘藩、孟怀玉领轻兵继续追击。
卢循在沿途聚集散溃卒,仍有数千人,一路回到番禺,徐道覆则退往始兴,刘裕凯旋而归,皇帝派出使者就地劳军。
义熙七年正月,刘裕班师回到建康,改授为大将军、扬州牧,赐班剑二十人,但他极力推辞,上不许。
随后,刘裕将南征北战中阵亡将士的名单列上,请朝廷为其安葬,如果遗体尚未运回的,派主帅前往收敛,送回本土。
卢循之乱基本平定后,刘裕再次辞去大将军之职,上许,皇帝于是任刘裕为太尉、中书监。
义熙七年二月,仍不死心的卢循又试图攻取番禺,但被孙处击败,继续南逃。
同月,刘籓、孟怀玉在始兴杀死徐道覆,随后,卢循在龙编被交州刺史杜慧度击败,投水自尽。
至此,震动一时的卢循之乱平息。