西寧府循化廳撒拉城的回民軍於4月份向清軍投降。循化廳在西寧府城東南方一百多裏處,這裏居住著回民和其他少數民族,曆史上稱為吐穀渾地。

徐占彪的蜀軍於5月份進駐肅州的中和橋。自稱兵馬大元帥的馬文祿,率部占據肅州已有五年。在金積堡覆滅之後,肅州成為西北回民軍隊的總指揮部。

桂錫楨於6月份領兵攻打肅州東關,攻克回民軍的一道大關卡。關外的回民軍入城協助防守。徐占彪所部與回民軍增援部隊在肅州城西南交戰,設伏擊敗回民軍。然後進攻塔爾灣,攻破四座堡壘和十九座墩卡。

西寧的回民首領馬永福率領米拉回民參見馮邦棅,請求安撫。白彥虎和禹得昌的部隊仍在堅固的營壘中抵抗清軍。左宗棠派何作霖率領八營部隊駐紮在西寧以東兩百裏處的碾伯,令龍錫慶率兩營部隊隨後跟進。這時劉錦棠從湖南返回甘肅,左宗棠令他率部取道平涼和蘭州,奔赴西寧。

7月7日,徐占彪所部攻占塔爾堡,另攻克二十多座小堡。於是,肅州西南馬文祿部隊的堡墩都被清軍掃平。徐占彪所部進駐沙子壩,距離肅州城隻有三裏。

肅州城內的馬文祿部於7月11日大開南門出兵,將士們一律身著白衣,頭裹白巾,貼著黃紙。排列好陣式以後,在陣前斬殺一名婦女和一條狗,作為驅魔鎮邪的方術,然後開始攻擊徐占彪的營壘。

徐占彪關閉壘門,不為所動。等到馬文祿所部的中營進入炮火射程,徐占彪才下令用開花炮射擊。開花彈落在馬文祿所部頭上,隻聽見到處山崩地裂,一片哭喊。

接著,桂錫楨率馬隊衝入陣內,往來劈砍。馬文祿哪裏見過這種陣式,連忙下令收兵回城。

從此,徐占彪所部圍住肅州城,天天進攻。馬文祿哀辭請求安撫,徐占彪認為他詭計多端,不予答應。

徐占彪所部於7月22日攻克姑樹的三座堡壘和六道墩卡。又於7月26日攻克四壩的十一座堡壘,都派兵勇駐紮。再於7月30日攻克朱家堡,追殺大批回民軍。到此為止,肅州城東西南三麵的壁壘,都被清軍控製。

劉錦棠所部已經開到碾伯,西寧本地回民和外來回民仍然持觀望態度。劉錦棠張榜告示,要求甘肅回民放心,說他的部隊隻打陝西的回民軍。然後,他率領董福祥、李雙梁和黃萬鵬等部奔向峽口,與禹得彥和崔三的部隊大戰一場,將他們擊敗,接著在高家堡進擊白彥虎所部,燒毀壁壘,然後回師。

左宗棠於8月8日進駐省城蘭州。不久,他就在這裏開設了蘭州製造局,也叫甘肅製造局。這個機構開始製造先進的槍炮子彈。

徐占彪所部仍在肅州周邊作戰,攻克朱家堡北麵的三座墩卡,然後進攻劉家堡。王萬有的陝西回民軍見甘肅回民軍糧食短缺,率領二百多名騎兵投降,徐占彪受降。

徐占彪認為,肅州是座大城,他的兵力太少,無法合圍,於9月份將手下的每營兵力分為兩營,環繞肅州城三麵修築壁壘駐紮。每天動用開花炮對城內轟擊,城牆垛口大部分都被炸塌,但是仍然未能攻克。

左宗棠上奏,請調宋慶所部從陝西北部的神木趕赴甘肅協助作戰,讓張曜所部駐紮金積堡,移調譚拔萃所部開赴西寧,令陶生林、金慶元和戴宏勝的五營騎兵及步兵開赴肅州。

自封的代理西寧知府馬桂源出城與陝西回民軍共謀起事,兩天沒有返回西寧。西寧府城內的漢民素來知道他的智巧,趁機關閉城門,將他拒於城外,請清廷任命的西寧道郭襄之主持防守。

馬桂源果然聯絡了禹得彥、崔三和白彥虎等人,帶領他們的部隊包圍西寧,撲向李雙梁的軍營。劉錦棠率領董福祥等部接連擊敗馬桂源請來的部隊。劉錦棠命令各部靠山設下埋伏,修築炮台,裝置開花車輪大炮等待。禹得彥等部隱伏不出。

龍錫慶所部於10月份追趕回民軍,抵達沙溝,被回民軍包圍。劉錦棠派兵前往救援,攻破回民軍的七座壁壘,全部焚燒。

劉錦棠見回民軍勢力強盛,抽出兵力開赴西寧以東的平戎驛,也就是現在所說的平安縣,造橋北渡湟水,打通北達威遠堡的糧路,每天與回民軍鏖戰湟水南北,戰果累累。

11月上旬,郭襄之從西寧府城內派出使者,緣繩攀下城牆,向劉錦棠告急,說城內糧食已盡。馬桂源也請湘軍退兵,願意接受安撫。

劉錦棠更加著力催促部隊猛攻,把大炮抬到北山之巔,令鄧增測準回民軍的壁壘,發射六十多枚炮彈,把牆壘全部炸垮。回民軍不得不逃到濠溝內躲避。劉錦棠揮軍追擊搜捕,將北山的卡壘全部掃平。

馬本源和馬桂源與11月18日趁夜奔向東川,縱火焚燒莊寨,從撒拉逃向東南方的巴燕。西寧解除戰時狀態。郭襄之率領城內的三萬多名男女居民,對著向西寧開來的湘軍隊伍望塵迎拜。歡聲如雷。

這一仗,劉錦棠以十八個營的騎兵和步兵,分別駐紮在八十多裏的地段,經曆大小五十多次戰鬥,在冰雪中站穩了腳跟,立下了很大的戰功。

到了12月份,西寧大通的所有回民堡壘都請求安撫,交出二千幾百匹戰馬和六千多枝槍矛。陝西回民軍首領崔三和甘肅回民軍首領冶興福、馬福壽等人,到湘軍軍營中獻出良馬。劉錦棠派馬永福去召回隨馬本源出城的西寧回民,有三千多人逃回複業。隨後回歸的人在道路上絡繹不絕。