1872年正月的那場太子寺之戰,導致左宗棠征西大軍損失慘重,甘陜局勢險些崩潰,所幸叛軍中最強悍的馬占鰲部率部歸降,并充當左宗棠平叛的「馬前卒」,使得局勢再次朝著向清廷利好的方向發展。之后,清廷又從內地增派援軍到左宗棠處,使得左宗棠的實力有所恢復,左宗棠得以繼續進行平叛事業,至1875年,左宗棠已經相繼收復河西走廊上大部分地方,叛軍只得退守最后的堡壘肅州(今酒泉)。
彼時,占據肅州的是叛軍首領馬文祿以及從金積堡逃出來的白彥虎所部叛軍殘部,馬文祿此前是清軍軍官,趁甘陜大亂時占領肅州,并與新疆叛軍勾結,馬文祿在肅州實行殘酷的高壓統治,每天都有大量的平民被殺害;而白彥虎也不是善茬,甚至還想搗毀黃帝陵,其麾下的叛軍也是百戰余生,戰斗力不亞于普通清軍,馬文祿和白彥虎匯合在一起,肅州之戰勢必是無比艱辛的。雙方也知道,肅州之戰是最后一戰了,能堅持到現在的叛軍已經是最死硬的,招撫是顯然行不通的,那只能交給刀劍來決定了。
1865年8月,左宗棠率領清軍主力抵達肅州城下,此次清軍也是精銳畢至,劉錦棠、雷正綰、金順等清軍悍將全部匯集在貧瘠的肅州城下,一場無比慘烈的攻堅戰就此打響。左宗棠在肅州城外挖掘壕溝將肅州團團圍困,切斷城內叛軍與外界的聯絡,并在肅州城外的制高點上構筑火炮陣地,日夜轟擊肅州城。肅州是河西走廊上的重鎮,城高墻堅,清軍的火炮只能對其表面產生傷害,城墻整體結構絲毫未損,無奈左宗棠只得邊圍困、邊炮擊、邊想辦法。
雖然清軍的炮擊沒有起到關鍵性作用,但守城的叛軍卻是被炸死不少,再加上長期圍困,城內糧食物資匱乏,馬文祿和白彥虎也知道,如果不打敗清軍,肅州早晚必破。于是白彥虎主動請纓出城與清軍會戰,結果白彥虎在與清軍會戰中被擊敗,所部損失殆盡,白彥虎瞅準機會突出清軍重圍,逃亡新疆,算是撿了一條命。白彥虎的進攻沒有打敗清軍,還使得肅州城內只剩下了馬文祿在苦苦支撐。
九月十五日,決戰的時刻來了,左宗棠命令各路清軍同時對肅州城發起進攻,同時命令后防部隊嚴守各條壕溝,防止任何一個叛軍再像白彥虎那樣逃脫。在震耳欲聾的火炮聲、呼嘯的子彈聲中,清軍最終登上了肅州的城頭,攻入肅州外城。馬文祿只得退守肅州內城,此時已陷入內無糧草、外無救兵的絕境。不得已之下,馬文祿向左宗棠請降。但嗜殺成性的馬文祿,在投降前仍干了件慘絕人寰的事,馬文祿指揮叛軍在清軍接管內城前將肅州城內的百姓全部屠殺,計2萬余口,肅州百姓終究是沒有盼來他們的新生。
待左宗棠進入肅州城后,被眼前這慘絕人寰的一幕震驚了,作為一名儒將的他,生平第一次發出了將已經投降的人全部處死的命令,左宗棠在肅州城內升起大賬,身著戎裝,宣布馬文祿的暴行,隨即命令士兵將馬文祿等一干叛軍首領全部凌遲處死,同時將馬文祿所部叛軍全部斬首,以祭奠肅州城遇難的百姓。之后收殮城內遺體,老弱婦孺比比皆是,竟無一活口,可見叛軍之殘忍令人發指,左宗棠親自寫祭文以慰冤靈。血雨腥風的肅州之戰就此落下帷幕。
肅州之戰是左宗棠平定甘陜的最后一戰,從此甘陜底定,通往新疆的河西走廊被打通,不久后左宗棠帶著這些剛剛在肅州前線浴血奮戰的清軍勇士,西出陽關,踏上了光輝而又悲壯的收復新疆的新征程。