陕西大荔的回民经过一段时间的酝酿,终于爆发了起义。5月23日,王阁村的回民集结队伍,猝然对八女井的井民发起攻击。井民没有防备,许多人全家被杀。回民起义军烧毁了八女井。那些听说有变而回来的河防壮丁,逃的逃,死的死,一个也没留下。大荔的沙南和渭南的河北,多数村镇都被焚烧屠杀。

5月25日,回民起义军烧毁孝义镇,杀死赵权中,绅民死亡五百多人。起义军首领是赵权中所部的河南回勇。华阴的汉民也焚烧秦家村和沿河的回民村堡。渭南西北方的富平和耀州,也有汉民起来响应,焚烧礼拜寺,向北搜杀回民,直达同官的韩家原。

清廷接到报告,命令瑛棨调解。6月初,张芾率领四名委员出了省城,前往安抚。汉民绅士蒋若讷和回民绅士马百龄与他们同行。瑛棨又命令代理臬司刘鸿恩前往渭河以北,张贴告示,要求争斗双方解散队伍。

恰在这时,汉水以南的四川顺天军攻占了陕西西南部的青石关,一支太平军攻占了西安东南方两百多里处的山阳,清廷从河南与湖北派出的援军久未到达,瑛棨措手无策,便请求调回在外省的各路陕西清军。清廷认为远水救不了近火,命令官文催促雷正绾与何绍采等人率部赴援。又命令提督成名率领两千名京兵扼守山西西南角上的蒲州。

张芾一行从新丰渡过渭水,于6月3日歇宿在临潼的油坊街。这条街素来繁华富庶,但因战火燃起,商民都已迁移。知县缪树本将张芾一行安排在空空的馆舍下榻。

临潼乡团首领听说团练大臣来了,率领一万名团勇来到油坊保卫。张芾命令他们全部撤走。

6月4日,仓渡的回民首领偕同十几人来参见张芾,申明自己没有反抗朝廷。张芾安慰道:“你们都是良民,带头起事的是任五。朝廷只杀为首者,对胁从者不予追究。我就住在这里,只等你们写下保证书。”

张芾没有想到,他声称要诛杀的任五,也在这些回民代表当中。任五听了他的话,十分恼火。于是悄悄回到仓渡,集合几千名战士,打算将张芾杀死。对这一切,张芾还蒙在鼓里。

其他的回民代表却知道这些内情,不愿眼见张芾被杀,引起战端,便将实情告诉了马百龄,请他劝张芾赶紧返回西安。

6月7日拂晓,四名委员参见张芾,请他起程。张芾端坐不语。马百龄厉声说道:“大家还不快走,难道都想一起死在这里!”

四名委员听了,立即出发,策马急行。缪树本又来请张芾起行。张芾说:“吃了饭再上车吧。”

厨子送上面饼,张芾还要喝粥,厨子又解开行李熬粥。张芾喝完了粥才上车,而任五的大部队已开到,将张芾、缪树本、蒋若讷和马百龄一起押到仓渡。张芾骂不绝口,被割下耳朵。

6月13日,张芾、缪树本、蒋若讷及张芾的侄孙张涛都被处死。清廷接报,下诏对张芾按照侍郎规格予以优恤,在省城建祠,以缪树本、蒋若讷与张涛附祠。清廷也对马百龄赐恤,但他不久又活着逃回西安了。

大荔的回民起义军包围同州。同州城内的汉民先杀了回民。臬司刘鸿恩率领守令登上城墙,防守九天,起义军撤围而去。

省城周边的村堡,多数遭到焚烧和杀戮,数以万计的难民和伤员进入西安。6月29日,起义军攻打省城西关,清军游击孟柏林率部将起义军击退。

6月30日,起义军攻打东关,清军总兵阎丕敏率部出击。起义军绕过西关,火烧金胜寺,孟柏林又率部将起义军击退。另一支起义军从西北方杀来,清军提督马德昭率部奋力抵挡,将起义军击败,斩杀四百人。

回民起义军起初战斗力不强,清军能够以少胜多。但是西安与同州十几个州县集结的起义军越来越多,马炮器械与日俱增。而西安城内缺乏盐炭,只能靠马德昭派兵从河滩运来。起义军时常出兵拦截,都没能截获。