白彥虎得知清軍已兵臨古牧地附近的消息後,便從烏魯木齊率軍駐紮於此,企圖負隅頑抗。阿古柏也從南疆調遣援軍前來助戰。劉錦棠審時度勢決定潛師夜赴,會和金順所部,偷襲黃田。
夏鎮總兵譚拔萃率千總莊偉以開花大炮轟塌東北麵城垛,複用開花銅炮並劈山炮緊對缺口連轟,之後令知府羅長佑督同副將楊金龍及莊偉率親兵操縱克虜伯後膛炮使用開花彈猛烈轟南門左側,並調集快槍隊、劈山炮排列炮台兩側同時轟擊;提督譚慎典、譚和義率中軍左四旗,參將董福祥,副將張俊率董字兩營,各飭勇丁囊土潛伏牆壕,待大炮轟有缺口,即行攻入。
17日黎明,南城左側子牆崩塌,大隊清軍從缺口衝入城內,並向敵投擲火藥包。後續部隊迅速挖土填溝,湧入城中,與敵展開巷戰。這時,金順部亦從城東北入城,兩軍對進攻擊。守敵大部被殲,少數由缺口逃出者,亦被預伏之清軍殲滅。敵方守將王治、金中萬及阿古柏部將多人被擊斃。
此戰,共殲敵近六千人,包括安集延人一千一百六十八人,繳獲戰馬二百餘匹以及火炮槍械數千件。清軍亡一百五十八人,傷四百五十人。白彥虎因未在城中,幸免一死。他帶領殘部向南疆逃竄。
清軍攻克古牧地後,繳獲了王治、金中萬給烏魯木齊守軍的求救信一封,上有馬人得的批複:
烏城精壯已悉數遣來,現在三城,指烏魯木齊、迪化州城及妥明所築之偽王城,防守乏人,南疆阿古柏軍不能速至,爾等可守則守,否則退回烏城,並力固守亦可。
劉錦棠得此重要情報後,當機立斷,決定抓住時機乘虛蹈隙,除留下兩營扼守古牧地外,率領大軍於8月18日黎明急速向烏魯木齊挺進,途中不戰而下七道灣堡。
行至距烏魯木齊十裏處時,偵騎探報烏魯木齊守敵正紛紛向南逃竄。劉錦棠當即命餘虎恩率騎兵三營、譚拔萃率步兵四營由左路追擊;命黃萬鵬率騎兵一部、譚上連率步兵四營由右路追擊;命譚慎典等率步兵三營向烏城疾進。
白彥虎、馬人得沒有料到清軍來得如此神速,一聞炮聲,即棄城向達阪方向逃跑,因而清軍輕而易舉地收複了烏魯木齊。這樣,被左宗棠視為\"新疆關鍵\"的烏魯木齊回到了祖國的懷抱。阿古柏所遣援軍五千騎行至達阪時,聞烏魯木齊已失遂止。
烏魯木齊收複後,左宗棠命劉錦棠部駐守烏魯木齊,防止阿古柏軍北犯,並繼續清剿山中殘敵;命金順揮軍西進。昌吉、呼圖壁及瑪納斯北城之敵聞風潰逃,白彥虎也倉皇逃到托克遜。
收複烏魯木齊之後不久,不料劉錦棠卻身染重病,一時臥床不起。因此左宗棠另派金順部攻取北疆各地。
9月初,金順部開始攻打瑪納斯城,金順部總兵鄧增、都司張玉林所部,以後膛開花大炮轟城東北角樓,橫塌丈餘,劉宏發、方春發趁勢移卡,逼紮城根,但由於守敵頑抗,互有傷亡,相持不下,但炮戰中清軍擊斃叛軍首領韓邢農。
後來劉錦棠派羅長祜、譚拔萃、董福祥等率部增援,10月13日,伊犁將軍榮全亦率部前往合攻,最終於11月6日,董福祥用坑道戰將城垣轟毀,俘獲清真王妥得璘並將其處斬,順利占領該城。
至此,天山北路為阿古柏軍占領之地已經全部收複。此時,新疆已經進入寒冬之際,大雪封山,行軍變得十分困難和危險。劉錦棠等將領商議一番後,便決定就地籌糧整軍,並從後方抽調人馬,補齊前線各部的編製,以待來年繼續進軍南疆。