同治年间发生在甘肃河西地区的以马文禄为首的回民起义,威武雄壮,震撼了嘉峪关内外,使清廷震惊,让清军寒胆。
河西回民起义,也是由于清政府支持的民团任意屠杀回民引起的。同治二年(1863年)春,古浪县大靖堡民团将无辜回民“残杀无遗”,并很快波及古浪全县及永昌、山丹、凉州等地。回族人民生命财产无保障,纷纷外逃,或东走金积堡,或南遁西宁、大通。回族人民在忍无可忍的情况下,举起了义旗。同治四年(1865年)正月,凉州(今武威)回民在马忠领导下,首先起义。二月,肃州(今酒泉)回民在妥得领导下起义,并迅速占据州城。西宁户首领马文禄(即马四)闻风而起,很快攻占嘉峪关。三月,甘州(今张掖)回民也举起义旗。马文禄被妥得封为元帅,他将当地和由陕西、宁夏、西宁、河州来投的回族、撒拉族穆斯林组织起来,聚众万余,不断出击,有力地打击了当地民团和清朝军队,使肃州成为河西反清斗争的坚强堡垒。
陕甘总督杨岳斌虽然调兵遣将,多次进攻肃州,均遭失败,损失惨重,连清廷派去支援新疆的成禄部清军,也难以通过肃州。百般无奈,成禄乃与马文禄媾和,把肃州交给马文禄管制。知州陈墉被架空,马文禄“乃得专擅兵权,威挟官民矣”(《平同志》卷3)。马文禄以兵马大元帅的名义,统一指挥陕甘回民起义军。他们不但在河西地区打击清军,还不断派队远征,足迹遍及内蒙古西部草原,并一度占领外蒙古的科布多等城,使清廷及其奴才左宗棠惊恐万分。
直到同治十年(1871年)冬,左宗棠才派遣提督徐占彪等率部进犯肃州。马文禄又邀来新疆回、维数千义军来援。徐部到处受到起义军的拦击,进展缓慢,翌年二月,才到达甘州城南的红水坝。起义军立即将徐部包围,歼其大半。左宗棠闻报,急派宋庆带10营兵来援。宋、徐合股,向起义军发动进攻。经过激战,夺取了肃州城西南的义军重要据点塔儿湾。由于清军损失惨重,无力发动大的攻势。九月,左宗棠急令陶生林、金顺等率军增援肃州。左宗棠前后共调集60多营兵力,用了一年多时间,才将肃州东西南三面包围起来。
马文禄在重兵压境之际,曾先后两次求抚,徐占彪认为他“怙恶不悛”,一定要“严惩”,不予允准。马文禄乃下决心进行“背水之役”。他从义军中选出精壮,沐浴后,身穿白衣,头扎白巾,巾上贴着“杜哇”(阿拉伯语“祈祷词”),列队向清营冲去。如此多次,吓得清军心惊肉跳,不敢恋战,只能围城,不敢“攻坚”。
在清军围城之际,口外红庙子回民起义军于同治十二年(1873年)正月派来4000多人,支援肃州义军。二月,久经沙场的白彦虎部来援,马文禄如虎添翼,与白部联合,在毛目、双树屯、白柳湾、万年渠、牛头湾等处痛击清军;并从清军手中夺回塔儿湾,击毙清肃州总兵王子龙、提督李登第等大批员弁。
此时,白彦虎曾动员马文禄放弃“死城”,带领义军出城打流动仗。马犹豫不决,白乃于四月间率部离肃出关。清军受挫,左宗棠急令宋庆部驰援。至五月中旬,宋、徐、金诸部才将肃州城合围。闰六月,义军不断冲出城外袭击清军,毙其员弁勇丁多名,连徐占彪的左腿也挨了义军两颗子弹,卧病不起。
左宗棠看到“肃州一隅劳师日久,而又伤我统将”,乃决定“前往肃州,亲督攻剿”(《平定关陇纪略》)。七月十二日,左至肃州。十四日,马文禄再次派人递禀乞抚,左不予批答。马乃率部踞城死战,数日之内击毙清军提督杨世俊等弁勇五百多名。
九月十日,刘锦棠率湘军5营及已抚回军自西宁增援至肃。陕回军功崔伟、禹中海、毕大才,甘回军功马福寿等,受主子指使,连日在城下喊降。马文禄乃于十五日出城投降。
九月廿三日,马文禄、马永福等被左宗棠处以磔刑。客回1573人“悉数骈诛”,土回5400多人“尽付焚如”。左宗棠血洗了肃州城,虽儿童妇女也在所难免。这些血淋淋的事实,就是左宗棠到肃州后所“晓谕”的“老幼妇女免死,其诚心乞抚者准诣营投审,听候分别办理”的真实写照。人们称他“左屠户”,他确实是当之无愧。
至此,坚持反清斗争达十二年之久的陕甘回民起义,在清军的野蛮镇压下,最后失败了。