元兴二年,(公元 403年)正月,卢循派徐道覆率领起义军再度进攻东阳,仍未能拔,退守永嘉。刘裕率领北府兵进攻起义军,起义军将领张士道被杀,起义军被迫从永嘉、安固(今浙江瑞安)撤退至晋安。
从当时敌我双方的力量对比来看,东晋的实力已经大为增强,明显地居于优势和主动地位,尤其是刘裕率领北府兵与起义军多次交锋,连连获胜;虽然三吴地区"编户饥懂",民生凋敝,但是东晋可以从国库得到军粮装备的补充。起义军方面, 力量遭到严重摧残,原有的数十万之众,仅存数千人。再加上饥荒,部队及其家属的给养又来源无着。在这种情况下,起义军要想在三吴地区站稳脚根,显然是十分困难的,需要另觅出路,别图发展。
为了保存和发展起义力量,卢循作出了一个重大的决策∶向广州地区作战略转移。
元兴三年(公元404年)六月前后,卢循抵达番禺城下。广州刺史吴隐之闭门死守,作困兽之斗。起义军围城百余日,东晋守军本来都是老弱病残,再加上粮草耗尽,很快就被卢循攻克。而徐道覆率领的另一支起义军也攻克始兴(郡治曲江,今广东韶关西南)。卢循自摄广州州事,号"平南将军",在广州地区重建农民政权。
公元409年四月,刘裕带兵北上进攻南燕。徐道覆认为,这正是大举北伐,直捣建康的大好时机,请求卢循乘虚而出,但却遭到拒绝。义熙六年(公元 410年)正月,徐道覆自始兴亲往番禺,当面劝说卢循出师北伐。卢循虽然心里不希望北伐,但众志难违,只得勉强同意。
二月,农民起义军兵分东西两路,长驱北进。东路军由徐道覆指挥,舰队沿赣水,连克南康、庐陵,直逼豫章。西路军由卢循统帅,取道湘水,攻陷桂阳、湘东、长沙。三月,镇南将军江州刺史何无忌率领水军在豫章截击东路军,与起义军大战于赣水之上。徐道覆先布置强弩手数百人,埋伏在岸边,等敌军靠近后,百弩齐发,矢如雨注。
何无忌的舟师被这突如其来的袭击打得晕头转向,队形立即大乱。徐道覆命令起义军的大舰乘着风势,向敌军猛冲,晋军舟师所乘皆体小板薄的小型舰只,在义军大舰的冲击下。不禁惊慌失措。全线顿时崩溃。起义军战士纷纷跳上何无忌部所乘的战舰,何军或被杀,或投水,主帅何无忌当场毙命。起义军取得豫章之役的辉煌胜利,占领江州。
当何无忌兵败的消息传到建康后,朝野震动。四月三日,东晋卫将军、豫州刺史刘毅率军南下,再次阻击起义军。出发前夕,刘裕派专人致信刘毅,劝告他不要单独出兵。但刘毅不听,率领舟师二万进军姑熟。
徐道覆听到刘毅率军溯江而上的消息,建议集中优势兵力歼灭敌人。五月七日,起义军与刘毅的二万舟师大战于桑落州(在今江西九江东北)。刘毅同何无忌一样,交手不久,就被起义军杀得几乎全军覆没。刘毅丢掉全部辎重,仅带着几百名残卒步行逃命。
在这样一种情况下,正在北伐的刘裕不得不调军回转。但此时,刘裕的主力军刚刚经历大仗,并没有进行休整,情况并不是很理想。而起义军在接连的胜利后,尤其在打败何无忌与刘毅之后,士气大胜,完全有能力一举打到建康城下。
但偏偏这个时候,卢循得知刘裕回京的消息,他害怕了。卢循想把部队拉回寻阳,据二州(指江、荆)和刘裕分庭抗礼。徐道覆坚决反对卢循的退却主张和平分天下的幻想,和卢循争论多日,卢循这才勉强地收回了自己的意见。
刘裕正是抓住卢循在桑落州之战后迟疑不进的机会,迅速地进行迎战的部署。他急召青州刺史诸葛长民、兖州刺史刘藩、并州刺史刘道怜等带兵入卫建康。在援兵未到之前,刘裕移屯石头,加固防御工事。
五月十四日,起义军进至淮口(,建康内外戒严。徐道覆针对东晋政府军兵力单薄的弱点,认为起义军应当从新亭至白石一线,分兵数道,发动强攻,如果敌人分兵抵挡,必然捉襟见肘,这样,起义军就会从多处突破敌人防线,象把把利刃直插建康城内。因此他向卢循建议起义军"焚舟而上,数道攻之",和东晋政府军展开决战。
当时,刘裕最担心的正是起义军实行这样的作战方案。然而,对于徐道覆提出的作战计划,卢循竟然拒不接受。徐道覆准备自己率领部队从新亭至白石发动进攻,卢循又蛮横地加以制止,只许停泊蔡洲待命。卢循荒唐地把希望寄托在敌军的"不战而破"上。
又是这个犹豫时间,东晋的各路援军陆续开到建康。刘裕在建康的外围修治越城,筑查浦、药园、廷尉三垒,同时命令冠军将军刘敬宣屯北郊,辅国将军孟怀玉屯丹阳郡西,建武将军王仲德屯越城,广武将军刘怀默屯建阳门外。显然,刘裕利用卢循"按兵待之"的机会,完成了保卫建康的军事部署。
卢循不愿意打陆地战,让起义军十余舰硬攻石头栅。该栅是刘裕重点布防的据点,栅坚垒固,兵力密集。起义军久攻不克,只得回泊蔡洲。
由于战舰损失严重,对石头栅又频攻不利,造成师老兵疲,卢循决定率众在南岸登陆。为了转移敌人的注意,保证登陆计划顺利进行,起义军佯攻白石。刘裕不知是计,率刘毅、诸葛长民拒之,留参军徐赤特戍守南岸。起义军看到敌军主力转移到白石,立即发动火攻,在张侯桥击溃徐赤特部,进屯丹阳郡,逼进京口,并分兵出击金城、姑熟、江宁、芜湖等县。
刘裕得知起义军主力活动于丹阳郡境,方知道上当,便自白石率军驰归,列阵于南塘,命参军褚叔度、朱龄石率兵千余人过淮。由于朱龄石所领多鲜卑骑兵,而起义军用的是短兵器,接战不利,只好败退。
起义军在京口、芜湖一线的一系列军事活动,既不能对建康构成威胁,也没有产生消灭敌人有生力量的效果,反而严重地挫伤了自己的锐气。卢循决定放弃进攻建康的计划,徐道覆看到农民起义斗争的大功垂成,竟因领导人的指挥失误而将毁于一旦,万分痛心地说∶"我终为卢公所误,事必无成。使我得为英雄驱驰,天下不足定也。"
七月初十,起义军留下范崇民率领战士五千、高舰百余戍南陵(今安徽宣城西),扼守荆、江门户,主力部队自蔡洲向寻阳方向南撤。
但是,刘裕显然不会给卢循逃跑的机会。起义军还没有开拔,刘裕就派庾悦为江州刺史,自东阳出豫章;以虞丘进为鄱阳太守,东出鄱阳。在起义军出发之日,又派遣建威将军孙处率军三千自海道袭番禺,以绝后路。当起义军动身南撤后,他又命令辅国将军王仲德、广川太守刘钟、河间太守蒯恩等率领大部队跟踪追击,并派遣淮陵内史索邈率骑兵支援荆州。
刘裕知道起义军拥有强大的舰队,为了保证东晋政府军在水战中取胜,又"大治水军,皆大舰重楼,高者十余丈",在水上也取得了压倒起义军的优势。
八月,卢循委派部将英纠率领起义军千余人断五亩桥(在江西鄱阳附近)以控制粮道;又遣童敏之为鄱阳太守,占领鄱阳城。但是,英纠和童敏之相继失败,鄱阳失守。
十月,徐道覆率领战士三万人进攻江陵,于豫章口挫败东晋荆州刺史刘道规的前锋部队。但是由于东晋前后夹击,起义军失利,被杀万余人。
十一月,王仲德等率领东晋政府军进攻南陵,起义军别帅范崇民以精兵高舰据守,夹屯两岸,但终究抵挡不住官军的攻势,只得弃城退走,船乘俱被烧毁。
十二月,刘裕亲自统帅的东晋水军列阵雷池(在今安徽宿松至望江县东南)。起义军扬声不攻雷池,当乘流径下。刘裕派遣轻利斗舰,与起义军交锋,又准备大批火具。起义军本来因风将战舰停泊在西边,被岸上的东晋军一把火烧光了。
卢循指挥起义军向豫章撤退,派部队驻守左里(故城址在今江西都昌西北左蠡山下)"。刘裕命令政府军"攻栅而进"。尽管起义军战士作战十分勇敢,仍无法粉碎敌人的强大攻势,伤亡多达万余人。卢循与徐道覆不得不分别率领起义军向广州地区撤退。
义熙七年(公元 411年)二月,徐道覆率部退至始兴。孟怀玉等率军包围始兴。旬日城陷,徐道覆被杀。
三月,卢循统帅的起义军战士三千余人撤退至番禺城下。该城已被浮海而下的东晋政府军孙处部先行占领。起义军攻城二十余日,仍不能克。卢循命令改袭合浦(今广东合浦东北),占领该城,然后进攻交州,直逼龙编(在今越南河内东天德江北岸)。东晋交州刺史杜慧度率文武六千人拒守。卢循联络交州地区的少数民族俚人五、六千人,于六月二十五日与东晋军展开激战。卢循中箭后投水自杀,标志着继孙恩,徐道覆起义的正式结束。
世界史上最伟大的军事天才,亚历山大,拿破仑,唯一两个自已领军开拓千万平方公里帝国的骄子。其帝国维持了几年?留下了什么?