1864年春,天京告急,陈得才等率太平军日夜兼程,回师救援。他们一路上联合捻军,队伍发展到十几万人,声势大振。当到达鄂豫边界时,遭到僧格林沁的阻截。不久,又得天京陷落的消息,致使士气大落。最终在11月太平军战败,陈得才自杀。赖文光等联合捻军继续战斗。启王梁成富组织残余太平军第三次远征西北,与蔡昌龄所率的李永和、蓝朝柱、蓝朝鼎义军余部在陕西商南龙驹寨以南漫川关以北的土门镇会师。
这时,太平天国岌岌可危,奋战5年震憾全国的李、蓝义军也被清军各个击败,不久之前,义军首领曹灿章又被清军截获杀害,只剩下蔡昌龄一支孤军。梁、蔡两军在处境极为困难的情况下,组成一支联军,昼夜疾驰,于1864年6月6日(同治三年五月初三)到达西安城郊。
西安城大而坚,联军虽有20000余人,还是难以包围攻打。几天之后,联军缺粮,只好弃攻西安,继而攻户县,入周至,南走洋县、城固等地。9月1日(同治三年八月初一日),联军为了摆脱清军的纠缠,选择一块敌军薄弱之地作为根据地进行休整,再图发展,他们由窑坪入白马关继续西进,逼近阶州(今甘肃省陇南市武都区)。州守沈凤才闭城抵抗。9月18日(古历八月十八日)城破,沈凤才及教喻、训导、把总等人被杀。启王入城,出示安民,严密布防、坚守城池。启王府设在阶州州衙。大将蓝大顺、蓝二顺部分驻守西城楼、东城楼,蔡二顺部驻距城15公里的两水扼守西路要隘。文县县令常毓坤急告四川总督骆文忠,遣武达、果毅、湘果、彝字等营入援,“抵阶相持七月,城不得下”。
1865年,清政府急令四川总督骆秉章遣提督胡中和、总兵周达武率湘军,会陕西胜保鞭子军、甘肃清军云集阶州,环驻郊区,分别构筑工事、与太平军相峙。“据称周达武、江忠淑各率所部进逼阶州城。该逆分股于城外筑垒抗拒。蔡逆亲带黄衣悍贼,出城死斗。周达武督饬各营分兵迭击,奋力冲入贼阵,贼众大乱。蔡逆坠马,被黄衣贼抢护入城”。(《清史稿·周达武传》)
由此看来,当时联军抗拒清军的斗争十分激烈。由于各省清军不能配合作战,久攻无功。清廷于1865年3月3日(二月初六日)命令四川提督胡中和统率川陕甘各省清军,“以一事权,如有何路官军不遵调度,致误军机,并着该提督随时查明,从严参办”。又命胡中和“稳慎围攻,不必硬拼,而要绝其援应,断其米粮,要使梁、蔡联军困死阶州城”。3月下旬,太平军在西壕岸和北岭等地接连受挫,城外营垒大多丢失。4月,太平军在龙王庙战斗中,由于李国厚的投敌,损失严重。但启王与其他诸将督联军将士环城防守,严阵以待。
5月下旬,清军仍强攻不下,便使用分化瓦解手段,太平军中部分官兵受降,双方力量发生了变化。清军又暗中在城外北山将台山,挖一地道,直通西北城角之下。周达武建议“以剿为攻”。6月16日(古历五月十三日),联军粮弹供缺,清军乘势领兵人攻。清兵占东江水、严家湾太平军垒堡后,将一棺材火药从地道运至西关城门,引火爆发,城遂塌,武字营统帅周达武遣“先锋”400人先入,湘果营统胡颂,鞭子营统帅巴图鲁胜保等率大队继至,三面合攻,是夜城破,守城太平军全军覆没。据《清史稿·周达武传》记载:“伪启王梁成富及蔡逆妻女经武字营生擒,押解四川省讯明正法。其伪昭王蔡昌龄被湘果右军毙,割首级传示陕西被害地方。启、蔡两首逆,一擒一斩,悍党无一脱,全股殄除净尽,克服阶州城。”说明梁成富被俘杀害,蔡昌龄则在阶州保卫战中战死。
欲驻扎在两水山斩梁的蔡二顺部队,拦截了西路清军。城破后,率部由两水沟西进,欲图发展,但被驻扎于杜家沟、荔子山沟的清军所阻。沿大路在白杨坝、石门等处均有清军堵截。太平军只有经小路从后坝上山,过庙坪翻黄金崖、张庄,由桑林山十二愣下山,到蒲池高家村,这样绕过了官军防线,继续西进。行至小关子进入草坝子时,小湾儿督粮的巩秦阶道龙锡庆,也赶到此处凭险固守,蔡军到此,将旗卷起,冒充湘果营。山上官军问是什么军队,蔡军回答是湘军果营。官军说:“既是湘军果营,把旗展开”。蔡军不应,便开始攻击,太平军只得退回,至蒲池高家村,另觅山路。次日由蒲池山过柳塘,越吊草坝,到小河口、孙家磨等村驻扎休整。于同年(古历)五月下旬,尾追各路官军,如乌云翻滚,四面拥集马营、池坝、金厂高山。太平军众寡悬殊,无法突围,全军覆没。