後來,左宗棠派徐占彪率十二營川軍從靖遠出發並在1872年初進到肅州高台。而馬文祿早就聽說左宗棠是一個厲害的角色,所以他聯絡了從西寧逃來的白彥虎餘部,以及從新疆入關的維吾爾族地方武力堅守抵抗,準備與左宗棠的部隊決一死戰。
到高台的徐占彪沒有停留太久,除留一部兵力保護運道外,主力繼續向肅州城前進。3月,清軍奪占了肅州城南三十裏的紅水壩,並繼續向塔爾灣和肅州外圍的其他回民軍堡壘進攻,企圖逐步占領肅州外圍。
由於塔爾灣地勢較高,回軍不僅在這裏構築了堅固的堡壘,還在周圍挖壕築卡。在頑強抵抗的回軍麵前,清軍的進攻步步維艱。直到8月初,清軍才基本上攻占了近城的回軍堡壘,而回軍已經退入到城內堅守。
由於兵力不足,徐占彪多次向左宗棠請求增兵。當時進攻西寧到了非常重要的時刻,左宗棠不想分兵,也無兵可派。結果,苦戰的徐占彪始終不能對肅州形成合圍。
後來,西寧之戰接近尾聲時,左宗棠派陶生林率馬步五營赴援,在1873年1月到達肅州。左宗棠還奏請清政府派往新疆的金順一軍二十營也來到肅州,參加圍攻。這樣,清軍才基本完成了對肅州的合圍。
剛開始,因為指揮上不統一,清軍的合圍並不嚴密。回民起義軍在城西禮拜寺和北稍門一帶修築了堡壘,所以仍然能突破清軍的合圍出入肅州。後來,清軍陸續攻破了這些堡壘,占領了城西禮拜寺,並在肅州城外挖了長壕,壕外築起堅厚的炮牆,牆外置木柵。還在幾個要點修築了炮台,才完全控製了肅州城出入的通道。這樣一來,肅州完全成為一座孤城,被攻破隻是個時間問題了。
難道肅州的回軍就這樣成了甕中之鱉了嗎?不會的,他們的“救星”來了。
白彥虎率領的陝西回民軍一路敗退,經山丹、甘州(今張掖)、高台等地,接近肅州,在4月初進入塔爾灣。
此時,來個裏應外合,沒準就能擊敗清軍,解肅州的燃眉之急。
於是,白彥虎率部下將士從外麵襲擊徐占彪的大營,馬文祿率部從城裏出南稍門夾攻。
這種局麵是清軍沒有料到的,所以在回民軍的攻擊下,徐占彪、金順部清軍傷亡很大。但是因為清軍人數上占有一定的優勢,武器裝備又是一流的,再加上防守比較嚴密,所以白彥虎和馬文祿最終也沒能突破清軍的防線,無法實現內外會師的預期目標。
不能解肅州之圍,自己就沒有立足點。白彥虎隻好放棄與馬文祿合作的計劃,出走新疆,尋找其他出路。
白彥虎就好像一顆劃過的流星,讓肅州回民起義軍眼前一亮後,便又恢複了黑暗。別人是靠不住的,要想解圍,還得靠自己的努力。
此時,西寧之戰已經結束,除肅州外,甘肅各地的回民起義都已經宣告失敗。再加上白彥虎放棄給肅州解圍,而選擇了出嘉峪關西走,肅州回民起義軍成了徹徹底底的一支孤軍。
在外援無望的情況下,馬文祿選擇了突圍西行,若想突圍必須攻下城西禮拜寺,因為禮拜寺是從肅州出嘉峪關的大路。但這種軍事要地,清軍自然派有重兵駐守。所以,一場血戰在所難免。
經過十晝夜的連續攻擊,回民軍雖然損失了不少有生力量,但卻未能攻下禮拜寺,隻得暫停進攻。
7月,清軍又攻占了東關,馬文祿再次組織突圍,結果在清軍的洋槍洋炮麵前又以失敗告終。
雖然回民軍突圍沒有成功,但清軍對肅州也是奈何不得。因為肅州城固壕深,牆高三丈六尺,厚三丈多,外環城壕,清軍一時還無法攻入城內。無奈,左宗棠隻好不斷增兵,使圍城清軍達到六十多營,雖然圍攻了好幾個月,傷亡慘重,但還是撼不動肅州城。
這時,新疆的形勢越來越危急,清廷令左宗棠迅速拿下肅州,打通入新疆的通道。左宗棠也很納悶,這肅州難道是鐵打的不成?細算一下,從同治十年十一月二十七日(1872年1月7日),徐占彪軍在高台與成祿會晤,交接防務,開始對肅州發動進攻,已經有一年九個多月了。自己耗費了這麼多人力財力,應該撕開它一個口子才對啊。