恩见无机可乘,只得怏怏离去。
刘牢之不肯放过孙恩,沿途追杀,利用火攻袭击孙恩的舰队。孙恩上岸劫掠更是遭到晋军的迎头痛击。刘裕在扈渎截住孙恩,跟孙恩展开大战,三战三捷。孙恩损失惨重,从此势衰。
司马元显发现晋军的水上优势丧失,大力发展水军。他加强水军的目的,一是对付孙恩,二是对付桓玄。
孙恩已经不足为患,司马元显决定讨伐桓玄。桓玄对朝廷的威胁比孙恩还大,已经出现割据自立的迹象。司马元显决定先发制人进攻桓玄。
402年,司马元显昭告天下历数桓玄的罪行,率军讨伐桓玄。
司马元显自封征讨大都督,任命刘牢之为前锋都督,率领经过升级扩建的舰队西征。
桓玄也不示弱,提兵迎战。他传檄天下历数司马元显的罪状,率领舰队东征。
晋军集结已毕。司马元显登上战船心里又没底了,迟迟不肯下令开拔。大军就在江边耗着。刘牢之一看他不走,自己也按兵不动。
桓玄顺江东行走了一半的路了都没见到司马元显的军队,心中大喜,知道司马元显怕了自己,挥军直杀建康。
司马元显听说桓玄杀来,弃船上岸,退守建康。