孙恩第二次起兵是隆安四年(公元400年)四月。东晋以谢琰为会稽内史,都督五郡军事。谢琰在淝水之战中立有战功,居功自傲。孙恩乘其骄傲麻痹之时,于隆安四年四月率水军至浃〔jia夹〕口(今宁波甬江口),入余姚、上虞,再攻占会稽。击毙谢琰及其二子。谢琰死后,东晋兵权落入非士族出身的刘牢之手中。刘牢之于十一月攻义军,孙恩重退回海岛,刘牢之加强海上防备,毁沪渎垒(在今上海市),以防孙恩水师。
义熙六年(公元410年)二月,卢循、徐道覆共率起义军10万,分道出兵北进。卢循一支水军自广州经湘水进入长江。徐道覆一支水军从始兴(广东韶关)出发,经豫章也进入了长江。卢循和徐道覆连袂东下,百里之内,舟船不绝,戍卒十万,舳舻千计。晋军各地守军见义军旌旗招展,船舰蔽天,声势浩大,纷纷望风而逃。东晋镇南将军、江州刺史何无忌自寻阳(今江西九江)率兵往战于豫章长江水域。徐道覆乘西风命数百弓箭手向西岸射击何无忌的坐船,船被西风压向东岸,义军以大舰相逼,晋军大溃,何无忌被杀,建康震惊。
琅邪人孙恩是五斗米道首孙泰之侄。孙泰见天下兵起,就收兵众,谋起义。后被诱斩,同时被杀的还有他的六个儿子。孙恩逃入海中。晋隆安三年(公元399年)五斗米道徒共推孙恩为首,在海上起事反晋。
这时,徐道覆欲乘胜下建康,卢循欲退守寻阳,战略上的争执,贻误了战机。卢循率军退驻寻阳,只留范崇民率5000兵守南陵(今安徽宣城西)。刘裕一面派兵追击,一面派建威将军孙季高率3000水军沿海南下,限于十二月之交攻占广州,夺取卢循的根据地。
十二月,卢循徐道覆合军再连袂东下,约有一万多水军与刘裕军大战于大雷(今安徽望江县西岸)。刘裕以轻舟强弩进攻并借风纵火,泊于西岸的义军舰队大败,战舰大部被烧。卢循败走寻阳,准备还回豫章,筑栅切断鄱阳湖口以为退路。刘裕攻栅,义军苦战,死伤万余人,战舰大部被烧,残部仅余数千,只得南撤。
义熙七年(公元411年)二月,刘裕部将攻破始兴,徐道覆战败牺牲。三月,卢循退至广州,但广州已于年前被晋军攻占,卢循屡攻不下,战死数万人。四月,退至交州(今雷州半岛境),卢循战败,投水自杀。
孙恩、卢循海上大起事自公元399年至411年,他们以海岛为基地,经常以数十万人之众乘大海船航行于海上,进行军事活动,纵横东南海上和长江下游12年之久,前后所造战舰数万,小船不计其数。“八槽战舰”则具创造性。起义后来失败了,但是他们英勇奋斗、坚强不屈、不怕牺牲的精神,奠基于人民中间的雄厚的造船基础,快速高超的造船能力、准确娴熟的航海技能和雄壮威武的战舰实力,在我国造船航海史上谱写了光辉的篇章。
孙恩据海岛四次起兵反晋。晋隆安三年(公元399年)十一月,晋朝廷下令征发东土诸郡(今浙东)已免除奴隶身份成为佃客的广大农民当兵,引起吴(今苏州、杭州一带)、会(会稽治今绍兴,即今浙江钱塘江以东地区)百姓不满,孙恩就率众自海岛登陆,攻上虞,杀上虞县令,袭击会稽,斩会稽内史王凝之。于是江、浙等江南八郡人民起而响应。十天之内聚众数十万。十二月,朝廷急派大士族谢安之子谢琰和辅国将军刘牢之前往镇压。当谢、刘会兵渡过钱塘江口之后,为保存实力,孙恩率20万起义军乘海船退回海岛。
卢循以广州为根据地,依靠水师,据守六年。徐道覆精明而有远见,他见刘裕出兵北伐南燕慕容超,无力南顾,力劝卢循把握时机,再取建康。徐道覆并于前几年派人在粤赣边境梅岭砍伐船材贱卖给百姓,储之于民家。现在又欲起兵急需战船时,又凭卖券把这些木材征集集中,不到十天就制成船舰多艘,供水师使用。足见当时造船技术的普及和造船技术的高超。
东晋急召刘裕速归,刘裕日夜兼程行至下邳(今江苏雎宁西北),以船载辎重,自率数十人赶回建康。
元兴元年(公元402年)三月,孙恩第四次起兵。孙恩从海上攻浙江临海,被临海太守辛景击败。仅剩数千人,孙恩投海死,其部下从死者数以百计,称为“水仙”。
孙恩死后,其余众数千人推孙恩的妹夫卢循为主帅。此时,东晋政局不稳,统治者需要统治稳定;义军损失惨重,也想争取时间进行整顿,于是,卢循接受了东晋的招安任永嘉(今温州)太守。元兴元年(公元402年)五月,卢循率舰重又起兵反晋,自海入东阳(今浙江金华一带)被晋将刘裕所败。元兴二年(公元403年)正月,卢循派其姐夫徐道覆再攻东阳,八月,卢循攻永嘉,均被刘裕击败。卢循遂率水师浮海南下,先至泉州,因受晋军追击,就率舰队由福建南航,经100多天海上航行,于次年十月攻占南海最大港口广州。
东晋末年,政治腐败,贿赂成风,“民不堪命,天下苦之”。
隆安五年(公元401年)春,孙恩第三次起兵。孙恩率声势浩大的水师近海航行400里,进攻沪渎,然后率水师10余万人,楼船战舰千余艘,溯长江而上,占领丹徒(即京口,为建康之门户),直逼东晋都城建康(今南京市)。刘牢之急令部下刘裕自海盐奔驰截击。刘裕与孙恩会战于丹徒蒜山(今镇江西三里)孙恩战败,退至山上,重又整顿船只,准备直捣建康。这时义军中战船的数量及种类都很多。除有高大的楼船外,还有起四层、高10余丈的“八槽战舰”。为什么叫“八槽”,很可能有八个舱。这在当时是一种新型战舰。此外,还有其他各种船只,如飞云船、苍隼船、金舡、飞鸟舡等。这些船只都逆流而上,可惜,楼船太高大了,又遇到逆风,转动不灵,航速受到影响,未能攻下建康,只好挥师顺流而下,取广陵(今江苏扬州),顺江出海。孙恩庞大的船队又北上攻占郁州(今江苏连云港外以东的海中,周围数百里),刘裕尾追,在郁州大败义军。孙恩遂率船队沿海南还,又败于沪渎和海盐,义军损亡上万。此后,饥馑疾疫,死者大半。孙恩再回海岛休整。