1852年,太平军永安突围之后,先后攻击了桂林和全州。结果,太平军攻击桂林33天无功而返,虽然攻下了全州城却也消耗了11天的时间。经过44天苦战,太平军不仅没有扩大兵员和补给,自身已经陷入师老兵疲的境地。不得已太平军开始向湖南进发,于1852年6月5日来到了蓑衣渡附近。
让太平军想不到的是,此时清军已经完成了部署,就等太平军自投罗网。而且与以往不同的是,在这里埋伏的不是腐朽的八旗和绿营,而是江忠源训练的“楚勇”。这股来自湖南的团练,虽然只有1000余人,都有着超乎寻常的战斗力。而且清军也派出了总兵张国梁,率部在蓑衣渡埋伏,配合江忠源作战。
当太平军行至蓑衣渡之时,才发现航道已被阻塞,而且此处江面狭窄,水流湍急,太平军的船队根本无法绕行。太平军在狭窄的河道中挤作一团之,不知该如何是好之际,江忠源的伏兵开始发起攻击。清军“用劈山炮向河流钉塞处彻夜轰打”,太平军虽然也进行了还击。无奈此时的太平军,还可以说是一帮乌合之众,缺乏作战经验。结果,与清军鏖战两日,不仅没有打-破包围圈,反而有全军覆没的危险,太平军不得不放弃船只向东岸突围。原本负责防守此地的是绿营张国梁部,根本无法阻挡困兽犹斗的太平军,放任太平军突围而去。
不过太平军突围而走的,大多是青壮年,那些乘船北上的老幼妇孺,则没有逃过清军的炮火,在这一战伤亡殆尽,乘船行动的南王冯云山也不幸牺牲。同时,太平军的辎重补给也全部被焚毁。
可以说,蓑衣渡之战的规模虽然不大,但是对于太平军造成的损失却无可估量。尤其是南王冯云山的牺牲,直接埋下了太平天国内讧的隐患。