白彥虎的部眾,找借口拖延未繳馬匹和武器,劉錦棠派冶複興領兵扼守水峽,白彥虎抓到冶複興,將他處死。2月13日,白彥虎率領餘小虎等二千多名部眾,從永安和南山向北逃走。2月15日,劉錦棠返回西寧,安置本地回民。
金順的部隊開到肅州,駐紮在北岩頭。馬文祿從烏魯木齊召來四千人,趁著夜色,潛入城內,協助防守。徐占彪於2月10日攻克城西禮拜寺。白彥虎的部隊順著甘州、撫彝、高台一路襲擊北上,接近肅州。
左宗棠指望宋慶的部隊攔截白彥虎,可是宋慶因故沒有趕到。隻有楊世俊的部隊從扁都口星夜追擊白彥虎。徐占彪本身兵力不足,也不得不分出兵力在毛目攔截。
馬桂源最怕劉錦棠。他聽說老湘軍占了大通,心中一慌,再次逃往巴什城。
陳湜和沈玉遂已經取道少數民族地區,直搗巴燕戎格。馬永福率部迎接,向陳湜投降。沈玉遂率領輕騎,飛馬攔截馬桂源。
2月27日,左宗棠派遣的劉明燈和敖天印,也從米拉溝趕到巴燕戎格,冒著風雪搜捕。馬桂源的部眾紛紛扔下武器投降。馬桂源眾叛親離,隻得和哥哥馬本源一起來到軍營請罪。隨即被解往蘭州,處以磔刑。
巴燕戎格的回民首領陸續向清廷投降。左宗棠令外五工的撒拉回民全部繳出馬匹和槍械,將循化廳界定為撒拉回民的居地。八工回族格外粗獷強悍,擅長槍技,曆來與漢族和其他少數民族構釁,官軍不敢與他們交鋒,往往都是在循化邊境展示一下兵力,就草草回師。他們在甘肅邊界為患已有百年。
3月26日,外五工青科莊抗拒命令,陳湜下令斬殺為首者五十六人,兵臨卡勒岡工。劉錦棠派部隊前來會師。
這時,宋慶率領輕騎,風塵仆仆趕到蘭州。左宗棠說:祝三,可惜你來晚了,白彥虎已經跑了。唉,你且率部駐紮涼州吧,那裏還有軍糧。以後再做安排吧。
白彥虎和西寧的馬壯,於3月16日帶領部眾來到肅州城南。
俄國人賴在伊犁不走。榮全的部隊駐紮塔爾巴哈台,沒起什麼作用。清廷非常著急,總理各國事務衙門幾次給左宗棠寫信,詢問有什麼好主意。
左宗棠回答:我身體衰弱多病,智力已經耗盡,怎能想出什麼好主意?既蒙你們看得起,隻好將我的想法說出來。俄國人挖空心思要奪我們的領土,不達目的決不會罷休,恐怕不是筆舌之爭能解決問題的。自古強弱之分,既要看有無道理,也要看有無實力。新疆人民生活在苦難之中,先要讓百姓恢複元氣,重新籌劃。從軍事而言,要想讓俄國人計謀落空,必須先平定回部;要想收複伊犁,必須首先攻克烏魯木齊。當務之急,不在於預先策劃對付俄國人的辦法,而是要精心挑選出關的大將;不在於先索還伊犁,而是要迅速攻取烏魯木齊。
4月1日,陳湜等部攻打卡勒岡工,劉厚福中槍陣亡。左宗棠批評道:劉厚福的死,和沈遂玉的傷,都是因為隊伍不整齊,搜山不嚴密。在山穀用兵,必須先扼守總路,派部隊分搜旁路小徑,才可以節節推進,不能貿然前往,導致不測。
陳湜打了五天,攻破六座村莊,其餘各工受到震動,決定投降。循化回民渡河增援的部隊,被沈玉遂與何作霖擊敗。河南的八工紛紛交出武器,請求安撫。陳湜整理部隊過河,將二十多名首領處死,搗毀所有的炮台和碉堡。循化的撒拉回民就此平靜。
河州知州潘效蘇收容了四萬多名難民,狄道州知州喻光容也收容了一萬多名。左宗棠令各地丈量田地,編審保甲,發給書本,興建義學,逐步恢複正常生活。
馬文祿聽說白彥虎來了,頓時興奮起來,派兵出城攻擊圍城的官軍。徐占彪每天都要迎戰。白彥虎攻打毛目,遭到激烈抵抗。他想:硬攻無益,還是另辟蹊徑吧。他帶領部隊繞到關外,抵達距肅州三十裏的塔爾灣。他派人給馬文祿送信,約城內守軍於4月3日合攻官軍。可是這一次也沒能得到多大的便宜,又遭到金順和徐占彪的激烈抵抗。
徐占彪對白彥虎十分惱火,決定反擊。4月5日,他留下部隊守在城壕邊,將主力分為三路,直搗塔爾灣。徐占彪還在路上,馬文祿已派兵撲向城壕。徐占彪火速殺入白彥虎軍營,斬殺七百人,然後回師攻打城內的援兵,將他們堵回城裏。白彥虎知道肅州無法立足,決定去新疆發展。他派出幾百人牽製徐占彪,領著部眾逃到關外的大罩灘與黑山峽。
馬文祿見援兵已走,更想奪回禮拜寺,以向關外逃竄。他下令在城牆底部開挖地道,以禮拜寺為目標。徐占彪令部隊在禮拜寺周圍開挖壕溝,在地下對峙。如此堅持八個晝夜,馬文祿才將部隊撤回城內。
到了5月份,城內守軍耐不住饑餓,提出殺掉婦女突圍。徐占彪卻將營壘前移,逼近城下。馬文祿的部隊剛一出城,就被堵了回去。
5月24日,宋慶所部從甘州開到,對肅州的包圍更加嚴密。
6月份,左宗棠上奏,請求將固原州升格為直隸州,在州城西南的銷河城設立州判,在州城以北二百四十裏處的下馬關增置一個平遠縣,在州城西北四十裏處的同心城設巡檢一名;將鹽茶廳改為海城縣,在轄境以西的打拉城增設一名縣丞。同時,請求逐步回收銷毀蘭州頒發使用的部司鈔票,因為這種鈔票日久腐爛,價值下跌,造成了百姓的損失。
清軍對肅州的圍攻,持續到了7月份。徐占彪多次發起攻擊,屢屢失利。7月13日,部隊在城關附近修築好一座炮台,開炮轟擊,在城牆上炸開十多丈的缺口。徐占彪大喊:先登城者有賞!
可是,軍士們衝到壕溝前一看,隻見溝深四丈,泉水湧注。這就是古代人所說的酒泉。馬文祿築了壩,把泉水蓄積起來,水的深度完全可以把人淹沒。部隊猛然刹住腳步,無功而返。徐占彪隻得將部隊部署在濠邊,與守軍力鬥。隻要看到守軍稍有懈怠,便掘濠放水。他率領總兵李玉春和方友升把土石填進濠內,然後過濠登城。城南城北的守軍蜂擁而至,金順和宋慶的部隊一並衝鋒,拔除東關的外城。
7月30日,徐占彪督率部隊進行巷戰,守軍一槍擊中他的左腳。各部分路衝鋒,斬殺馬文祿的大將馬得振。徐占彪下令在街口增築炮台。左宗棠派賴長把火炮運到軍中。
8月19日,守軍出兵作困獸之鬥,擊斃官軍將領和軍官王安邦等十一人。方友升和炮兵將領鄧增都負了重傷。徐占彪帶傷出營增援,馬文祿才下令撤回城內。
金順的任務是進軍新疆。他知道西北作戰的辛苦,擔心兵力不足,奏調張曜的部隊從甘州和涼州隨後跟進。左宗棠知道軍糧不夠,令張曜駐紮鎮番,使戰馬可以吃到水草。