阿古柏得知清军西进的消息,急忙布置防御,令马人得,马明、白彦虎等分守乌鲁木齐、昌吉、呼图壁、玛纳斯、古牧地等地,阻止清军南下;主力部署在吐鲁番和托克逊,阿古柏本人在托克逊督战。其总兵力约4万人。
1876年7月,刘锦棠率所部各营到达巴里坤,并进驻古城,7月底与金顺部在济木萨会合,谋攻古牧地。8月中旬,清军进扎古牧地城东和东北,用开花大炮轰塌坚固的城墙。8月17日,清军经过数天激战,占领古牧地,歼敌近6000人。
左宗棠
刘锦棠从缴获的敌方信函中得知乌鲁木齐守备空虚,决定除留两营兵力守古牧地外,主力迅速向乌鲁木齐挺进。8月18日黎明,清军出发。守卫乌鲁木齐的马人得、白彦虎未料到清军行动如此迅速,一闻炮声,即弃城向达坂方向逃跑。清军收复乌鲁木齐、迪化州城及伪王城。盘踞昌吉、呼图壁与玛纳斯北城之敌如惊弓之鸟,未等清军进攻即弃城而逃,只有玛纳斯南城之敌负隅顽抗。从9月2日始,清军金顺部会同刘锦棠部,伊犁将军荣全等部猛攻玛纳斯南城,11月6日攻克。至此,北疆地区除伊犁外,所有敌占点全部克复。此时冬季来临,大雪封山,不便于大规模的军事行动,清军决定暂停进攻,进行休整,待春天到来再向南疆进军。
收复南疆的部署,左宗棠根据敌方情况于1876年11月初即已拟定,阿古柏在达坂、吐鲁番、托克逊三城部署重兵,加强防守,其本人则坐镇喀喇沙尔指挥。左宗棠针对这一情况,提出了三路并进的作战方案:刘锦棠、广东陆路提督张曜、记名提督徐占彪各部克复达坂、吐鲁番、托克逊三城,打开南疆门户,然后乘胜西进,收复所有失地。具体部署是:刘锦棠部由乌鲁木齐南下攻达坂城,为北路;张曜部由哈密西进,为东路;徐占彪部出木垒河,越天山南下,为东北路。张、徐两部协力攻取吐鲁番,得手后,立即攻托克逊。
1877年4月14日,清军经过几个月的充分准备,开始向南疆进军,刘锦棠率主力1万余人及开花炮队由乌鲁木齐南下,16日进至达板外围,乘守敌不备,迅速完成对该城的包围。4月18日,清军打退增援之敌,在达坂域外增筑炮台。4月19日,炮台筑成,清军用开花大炮轰塌城中大炮台、月城和城垛,击中敌弹药库,敌军死伤甚众,企图突围,被清军截杀未逞。敌守军在清军强大攻势面前只得投降,达坂城遂克复。这一战,清军共击毙敌军2000余人,俘敌1000多人。
与此同时,张曜部和徐占彪部在盐池会师后,于4月21日克七克腾木,22日克辟展,25日克胜金台,向吐鲁番挺进。4月26日,刘锦棠部攻克托克逊。随后,张、徐二部在罗长祐部湘军协助下收复吐鲁番。至此,清军三路并进,未及半月即收复三城,为彻底打败阿古柏创造了条件。南疆人民纷纷起义,反对阿古柏的反动统治。阿古柏见大势已去,于5月下旬逃至库尔勒自杀。其子伯克·胡里在喀什噶尔称王,继续顽抗。