李文茂未作周密侦察,不知湘军的虚实,结果万余人长期滞留苏桥,不敢进攻,丧失了打击湘军和地方团练的有利时机。
而等陈开率部南返后,蒋益澧便命令驻平乐的湘军折回桂林,并秘密调动一千五百人绕到苏桥后面,于1858年5月下旬开始对李文茂部实行前后夹击。李文茂不幸负伤,便率部撤出苏桥,后退守柳州。起义军进攻桂林的计划宣告失败。
当李文茂与湘军作战失利,向柳州撤退时,在梧州与粤军作战的起义军也节节败退。
而就在此时进攻梧州的粤军,由广东巡抚江国霖和提督昆寿亲自编组。他们认为,过去几次作战失利,主要是“选勇未精,配船无法”,以及进攻时机选择不当,必待“西水未涨,东风当令之时,水陆并进,步步为营,方能得手”。
据此,他们得到署理两广总督柏贵同意后,抽调外海、内河水师,根据战船大小、火炮轻重、行驶快慢,分别编为前、中、后三队。即以能装载四五千斤火炮的红单等大型船六七十只为前队,能装载二三千斤火炮、桨多人众,转棹方便的扒船五十只为中队,能装载一千斤火炮、行驶快速的湖南麻阳舢板船一百只为后队。
前队主要发挥火炮射程远的优势,便于先发制人;中队既可掩护前队,又便于进退;后队可以在前队、中队的炮火掩护下,迅速接近对方,实行近战。
陆路方面,兵力增至一万余人,一半掩护水师溯江前进,一半专门进攻陆上起义军的据点。
此外,总督衙门还督令沿江各县团练于西江两岸配合作战。部署就绪后,粤军于4月19日趁江水尚未大涨、水流较缓之际,由昆寿统一指挥,从肇庆西上,往攻梧州。
起义军对粤军的兵力和进攻部署缺乏了解和研究,仍然袭用过去的老办法,在封川江面集中战船二三百只,于4月29日顺流下驶,直冲敌阵。当驶至德庆的春牛坪江面时,预有准备的广东水师前队首先发炮,击沉起义军前队战船数只。起义军水军右营安国公李发、先锋李明中炮牺牲方寸大乱。
这时,粤军水师中队扒船向两翼展开,后队麻阳舢板船在炮火掩护下迅速接近起义军战船,枪炮齐放,岸上的兵勇也配合作战。经过激战,起义军不少战船被击沉、击伤,人员伤亡也不断增加。
在危急情况下,天地会起义军战船十余只,利用烟雾掩护,转棹撤回封川江面。起义军在封川添筑炮台,并由梧州增兵四五千人,准备堵击粤军。同时还联络广宁、怀集等地起义军南下抄袭粤军后路,进行牵制。
但大成国水、陆部队不久即被清军击败,广东水师扬帆直驶梧州。5月30日晨,大成国在梧州的主要据点戎墟被苍梧、西宁的数千名团练攻占。梧州城守军面临两面受敌的不利形势,遂于30日深夜撤至城外。
粤军轻松收复梧州后,便停止了追击。
也就在梧州失陷的同时,另一头蒋益澧所部湘军在苏桥击败李文茂部后,便乘胜向柳州逼进。李文茂派其弟李文辉率部扼守白沙江口,扎竹为筏,横锁江中。
白沙江口是洛清江和柳江的汇合处,李文茂以为守住这一咽喉要地,湘军水师便难于攻取柳州。然而,蒋益澧事先摸清了李文茂的防御部署,湘军由桂林乘坐麻阳船驶抵雒容(今鹿寨西南)后,不再下驶,而是于夜间拖船上岸,由陆路抬运至柳州城附近的洛垢下水,出其不意地直逼柳州。