陝西大荔的回民經過一段時間的醞釀,終於爆發了起義。5月23日,王閣村的回民集結隊伍,猝然對八女井的井民發起攻擊。井民沒有防備,許多人全家被殺。回民起義軍燒毀了八女井。那些聽說有變而回來的河防壯丁,逃的逃,死的死,一個也沒留下。大荔的沙南和渭南的河北,多數村鎮都被焚燒屠殺。
5月25日,回民起義軍燒毀孝義鎮,殺死趙權中,紳民死亡五百多人。起義軍首領是趙權中所部的河南回勇。華陰的漢民也焚燒秦家村和沿河的回民村堡。渭南西北方的富平和耀州,也有漢民起來響應,焚燒禮拜寺,向北搜殺回民,直達同官的韓家原。
清廷接到報告,命令瑛棨調解。6月初,張芾率領四名委員出了省城,前往安撫。漢民紳士蔣若訥和回民紳士馬百齡與他們同行。瑛棨又命令代理臬司劉鴻恩前往渭河以北,張貼告示,要求爭鬥雙方解散隊伍。
恰在這時,漢水以南的四川順天軍攻占了陝西西南部的青石關,一支太平軍攻占了西安東南方兩百多裏處的山陽,清廷從河南與湖北派出的援軍久未到達,瑛棨措手無策,便請求調回在外省的各路陝西清軍。清廷認為遠水救不了近火,命令官文催促雷正綰與何紹采等人率部赴援。又命令提督成名率領兩千名京兵扼守山西西南角上的蒲州。
張芾一行從新豐渡過渭水,於6月3日歇宿在臨潼的油坊街。這條街素來繁華富庶,但因戰火燃起,商民都已遷移。知縣繆樹本將張芾一行安排在空空的館舍下榻。
臨潼鄉團首領聽說團練大臣來了,率領一萬名團勇來到油坊保衛。張芾命令他們全部撤走。
6月4日,倉渡的回民首領偕同十幾人來參見張芾,申明自己沒有反抗朝廷。張芾安慰道:“你們都是良民,帶頭起事的是任五。朝廷隻殺為首者,對脅從者不予追究。我就住在這裏,隻等你們寫下保證書。”
張芾沒有想到,他聲稱要誅殺的任五,也在這些回民代表當中。任五聽了他的話,十分惱火。於是悄悄回到倉渡,集合幾千名戰士,打算將張芾殺死。對這一切,張芾還蒙在鼓裏。
其他的回民代表卻知道這些內情,不願眼見張芾被殺,引起戰端,便將實情告訴了馬百齡,請他勸張芾趕緊返回西安。
6月7日拂曉,四名委員參見張芾,請他起程。張芾端坐不語。馬百齡厲聲說道:“大家還不快走,難道都想一起死在這裏!”
四名委員聽了,立即出發,策馬急行。繆樹本又來請張芾起行。張芾說:“吃了飯再上車吧。”
廚子送上麵餅,張芾還要喝粥,廚子又解開行李熬粥。張芾喝完了粥才上車,而任五的大部隊已開到,將張芾、繆樹本、蔣若訥和馬百齡一起押到倉渡。張芾罵不絕口,被割下耳朵。
6月13日,張芾、繆樹本、蔣若訥及張芾的侄孫張濤都被處死。清廷接報,下詔對張芾按照侍郎規格予以優恤,在省城建祠,以繆樹本、蔣若訥與張濤附祠。清廷也對馬百齡賜恤,但他不久又活著逃回西安了。
大荔的回民起義軍包圍同州。同州城內的漢民先殺了回民。臬司劉鴻恩率領守令登上城牆,防守九天,起義軍撤圍而去。
省城周邊的村堡,多數遭到焚燒和殺戮,數以萬計的難民和傷員進入西安。6月29日,起義軍攻打省城西關,清軍遊擊孟柏林率部將起義軍擊退。
6月30日,起義軍攻打東關,清軍總兵閻丕敏率部出擊。起義軍繞過西關,火燒金勝寺,孟柏林又率部將起義軍擊退。另一支起義軍從西北方殺來,清軍提督馬德昭率部奮力抵擋,將起義軍擊敗,斬殺四百人。
回民起義軍起初戰鬥力不強,清軍能夠以少勝多。但是西安與同州十幾個州縣集結的起義軍越來越多,馬炮器械與日俱增。而西安城內缺乏鹽炭,隻能靠馬德昭派兵從河灘運來。起義軍時常出兵攔截,都沒能截獲。