首页 » 中国近代战争史 » 中国近代战争史全文在线阅读

《中国近代战争史》第二节 云南回民起义战争

关灯直达底部

一、起义的爆发

云南地处西南边疆,境内多山,土地瘠薄,各族人民在清朝地方官吏、土司头人和地主豪强的重重剥削压迫下,生活异常困苦。清政府每年向云南征收赋税达白银四十万四千二百两以上,各级地方政府的费用和官吏的“养廉”以及巧立名目的苛捐杂税,随征科派。鸦片战争失败后的赔款,也分摊到云南各族人民头上,使其负担越来越重。

清王朝为镇压人民的反抗,在云南驻有绿营兵近四万人,每年所需俸饷及军械弹药、恤赏等费甚巨,其中半数以上由地丁银中支取,余由江南各省的协饷银补给。太平天国起义后,江南各省自顾不暇,断绝了协饷银的来源,于是云南地方当局进一步横征暴敛。“军费不足,则加赋税;赋税不足,则抽厘金;厘金不足,则逼捐输”①。各地团练更是“任意科敛,弊窦丛生”②。云南各族人民遭受残酷的压迫剥削,被迫起而反抗,以致“聚众抗粮”、“闭门拒赋”的现象时有发生。

为转移云南各族人民的反抗斗争目标,统治阶级不断挑起民族矛盾和民族纠纷。云南是多民族的省份之一,有汉、回、彝、白、哈尼、壮、傣、苗、景颇等几十个民族。除汉、回两族外,清统治者对其他民族统称之为“夷”。回族人数约占全省人口的十分之一二。由于统治阶级的挑拨,回族和汉族之间不断发生纠纷。早在嘉庆初年,就因回汉上层分子争夺厂矿利益,开始发生仇杀。道光朝以后,回汉之间的矛盾越来越大,械斗和仇杀的次数越来越多,并愈演愈烈。这种情况,使得云南的阶级矛盾和民族矛盾错综复杂地交织在一起。

1855年(咸丰五年)冬,云南临安府(治今建水)的汉族地主恶霸和楚雄府(治今楚雄)回民为了争夺楚雄府南安州(治今楚雄南)石羊厂银矿,发生纠纷。楚雄府知府崔治中等地方官吏乘机施展“暗中挑拨,意在两伤,借邀功利”的伎俩,“见临人(按:即临安府汉人)势强,则召临人杀回人;见回人势强,又使回人以杀临人”①,导致事态扩大,矛盾激化,从争吵发展到回汉械斗。

1856年春,临安汉族恶霸煽动汉人入南安州和楚雄府城捕杀回民,“老弱鲜得免者”②。楚雄府的汉族官绅也残暴地屠杀回民。临安汉族恶霸等在广通(今禄丰县广通镇)、罗川(今禄丰县西南)、禄丰等地逞凶之后,拟前往省城昆明屠杀回民,回众起而自卫。新兴(今玉溪)回民首领马凌汉率回民千余,在距昆明二十里的小板桥,将临安汉人恶霸打败。这本来是正当的自卫行动,却被统治阶级污蔑为“纠众谋逆”、“陰谋作乱”。云南巡抚舒兴阿和团练大臣黄琮竟“饬各府厅州县聚团杀回”,署布政使清盛也下达了对昆明回民“格杀勿论”的命令。①

统治阶级策划的对云南回民的野蛮屠杀,终于迫使回民群众走上武装起义的道路。同年6月,姚州(今姚安)回民首先起事,7月即攻占州城。各地回民相继响应。在滇西,杜文秀起于蒙化(今巍山),蔡发春起于顺宁(今凤庆),杨荣、虎应龙起于鹤庆、丽江;在滇南,马德新(字复初)起于新兴,马如龙起于临安北面的曲江,马凌汉、杨振鹏起于昆陽(今晋宁),徐元吉起于澂江(今澄江);在滇东,马联升起于曲靖,马荣起于寻甸。回民起义的烽火遍及云南全境。与此同时,汉族和彝、哈尼、白、壮等兄弟民族也纷纷起义。哀牢山区李文学领导的彝族人民起义队伍,一开始就同杜文秀领导的回民起义军并肩战斗。其他起义队伍也或者单独作战,或者与回民起义军彼此支援,相互配合,有的则直接参加了回民起义的行列。这时,虽然民族仇杀事件在不少地区仍不同程度地存在着,但是以杜文秀为代表的各族人民群众,通过斗争实践,逐步认识到封建官吏和地主武装团练才是回汉仇杀的真正罪魁祸首,是各族人民共同的敌人,从而摒弃民族相仇的偏见,走上了共同反对清朝封建统治者的武装斗争道路。

二、滇东、滇南起义军的反清斗争

以回民为主体的云南各族人民的大起义,极大地震动了清廷。咸丰帝(清文宗奕詝)立即令正在贵州镇压人民起义的云贵总督恒春折回云南,“痛加剿洗”。但自太平天国起义以来,清廷不断征调各省清兵赴江南镇压太平军,云南防军也“半经外调”,所剩清军不敷派遣,顾此失彼。回民起义军正是趁此有利时机,迅速发展力量,开展反清斗争。

滇东、滇南各族人民起义之初,组织比较分散。曲靖、临安、东川(治今会泽)、开化(治今文山)等府和广西州(治今泸西)的许多小鄙起义军,各自为战,击败了前来“围剿”的清军和地主团练武装,进而主动进攻,围攻敌人盘踞的城市。滇东起义军控制了平彝(今富源)至嵩明之间的大道。徐元吉部回民军则占据了接近省城昆明的澂江府城。随着斗争的发展,各地起义军力量不断壮大,并逐渐从互相支援发展到联合行动。1857年夏,马如龙、马德新、徐元吉等率领滇东、滇南回民起义军二万人,经晋宁(今昆明市晋城)、呈贡向昆明进发。当时昆明城中清军很少,团练因无人督率,纷纷溃散。云贵总督、云南巡抚和团练大臣等束手无策,只得紧闭四门,等待援军。7月12日,起义军占据距城仅五里的江右馆为大营,分据大树营、王家桥、堡基、马街子、碧鸡关、红庙、西坝等村寨,随即发动对省城的围攻。城内粮源断绝,战守无兵,云贵总督恒春无计可施,自缢而死;巡抚舒兴阿也“引疾乞假”,藏匿家中。

其时,清廷正忙于镇压太平天国革命,无力顾及云南,只得调四川总督吴振棫为云贵总督,带川兵二千名赴任。吴振棫慑于起义军的声威,一面奏请清廷将“主剿”回民的团练大臣黃琮、窦垿革职,以麻痹回民的反抗意志,一面召请在外省任职的云南籍回族官员回滇,以拉拢和收买回民军首领。滇东、滇南起义军的主要领导人马德新和马如龙都是回族上层分子(马德新是云南回民的总掌教,马如龙则是出身于官宦之家的清朝武生),他们公开声明,起兵“止欲报仇,不敢为逆”①,只要当局惩办“倡首灭回者,以服众心,即行解散”②。由于他们根本没有触动清朝反动统治的决心,因此,在统治阶级的利诱之下,于1858年春与官方订约,承诺“永不滋事”,并将围攻省城的起义军撤离,散归各地,滇东、滇南起义军第一次围攻省城遂告结束。

三、滇西起义军的胜利发展

(一)大理革命政权的建立

当滇南、滇东回民起义军由于马德新、马如龙等人的妥协遭受挫折的时候,滇西回民起义军在杜文秀的领导下,不断地发展壮大。

杜文秀(1828—1872)字云焕,号百香,云南永昌府保山县金鸡村人,回族。1845年(道光二十五年),永昌府汉族地主团练组织“香把会”,在官府的支持和纵容下,大肆残杀回民。杜文秀以家属被杀,未婚妻被掳,于1847年上京控诉,但冤仇终不能伸。失望之余,他逐渐认识了清王朝的腐败,激发起反抗清王朝民族压迫的革命思想。回到云南之后,便在云州(今云县)、蒙化等地暗中组织回民,酝酿起义。

1856年8月,杜文秀乘云南提督文祥率兵离大理赴楚雄的有利时机,在蒙化率众起义。9月7日,杜万荣、蓝金喜在大理府城起义。杜文秀闻讯,立即率起义军前往大理,与当地回民会合,大败清军,毙迤西道林廷禧、太和(今大理)知县毛玉成等。9月16日,大理知府唐惇培败逃宾川(今宾川南),起义军胜利占领大理城。夺据大理的胜利,使一部分起义军首领昏昏然,他们不去组织力量防御清军的进攻,却自恃有功,争权夺利。有的起义军首领抱有传统的民族偏见,任令部众抢掠汉人,引起群众不满。这时,杜文秀挺身而出,组织指挥部众粉碎了鹤丽镇千总张正泰对大理的进攻,并且明确提出:“欲做大事,必须收拾人心,不宜专尚威力。且汉众回寡,尤须重用汉人。”①杜文秀的正确主张,得到大家的赞同。由于他“精力强壮,忠直廉洁,素为众人所敬仰”②,遂被推举为总统兵马大元帅。10月23日,滇西回民起义军齐集大理校军场,筑坛拜帅。杜文秀以原提督署为大元帅府,组织大理革命政权。授蔡发春为扬威大都督,总各路军事,其他文武官员也各有职称。宣布“遥奉太平天国南京之召号,革命满清”,并通令“改正朔,蓄全发,易衣冠”③,以示推翻清朝反动统治的决心。

杜文秀“总统兵马大元帅”印

为了巩固新生的革命政权,杜文秀领导下的大理政权制定各种法律法令,实行了一系列有利于发展革命事业的方针政策,主要是:

第一,对各族人民一视同仁,平等对待,改善民族关系。还在起义之初,杜文秀就提出了“重用汉人”的正确主张,大理政权建立以后,即实行“不分汉回,一体保护”的方针,对其他民族,也采取同样的政策。杜文秀制定的《管理军政条例》规定:“族分三教,各有根本,各行其是。既同营干事,均宜一视同仁,不准互相凌虐。”①这种“无分汉回夷,一以公平处之”②的民族政策,改善了大理政权控制地区各民族之间的关系,得到了他们的拥护和欢迎。

第二,减轻人民负担,努力发展生产。大理政权规定废除丁银(人口税)和其它苛捐杂税,田赋只征粮米;“地方税课,旧有例者,方准抽收。不得私加名目,妄自征收”③,以减轻人民负担。同时,大力发展生产。农业方面,发放耕牛、农具,招民垦荒,奖励农耕。对工商业,采取保护和促进的政策,严禁文武官员“以官压市,轻价估买”④,积极发展纺织、采矿、制盐等工业生产。随着生产的发展,不但人民生活有了一定程度的改善,而且使起义军有充足的军饷,保证了革命战争的进行。

第三,制定军事制度,严格组织纪律。起义初期,凡属回民青壮年都要当兵。大理政权建立后,规定回族三丁抽一,五丁抽二;对汉族和其他民族,则分派一定的数额,由其各自出兵。起义军的编制,以十人为什,百人为棚,什有什长,棚有参军或参谋,三五棚有一统领或都统率领,十棚以上有将军或都督统率,将军、都督以上则有大司、大将军、大都督和元帅。一切军机事宜,须集体商酌,最后由元帅裁决。遇有大的军事行动,派出统带官作为元帅代表统率部队,带兵官不论何职,都要服从统带官的指挥。起义军中有严格的军纪和赏罚制度,鼓励将士服从命令,英勇作战。杜文秀还特别强调群众纪律,规定起义军不得“无故下乡,滋扰良民”,或“故意纵放牲畜,践踏田禾”,严禁“毁拆庙宇,扰害民房”,不准“强买估卖”等等。①以上规定和军纪,保证了起义军的兵源,统一了帅府的军事指挥,取得了人民的信任和支持,提高了起义军的战斗力。

(二)粉碎清军的多次“进剿”

大理背靠苍山,面向洱海,以上下两关为咽喉,地势极为险要。大理革命政权建立之后,杜文秀领导起义军利用良好的地理条件,修营筑垒,屯集粮草,做好了防御敌人进攻的准备,从而使处于劣势的起义军,粉碎了敌人一次又一次的武装“进剿”,保卫了革命政权,并使起义军队伍和控制地区不断发展壮大。

千总张正泰失败之后,清军又多次组织力量向大理进攻。宾川团练头目董家兰和太和县逃亡地主豪绅赵云寿、李根香等人组织“义兴营”团练军,联合败退到鹤庆的张正泰和屯扎姚州的提督文祥所部清军,企图摧毁大理革命政权。1857年夏,文祥指挥清军进攻下关东面的赵州。时值滇东、滇南起义军围攻昆明,滇西起义军便乘机袭击文祥部后路。清军腹背受敌,溃不成军,文祥退回镇南州(今南华),弥渡和云南县(今祥云)为起义军占领。1859年2月,董家兰指挥“兴义营”团练军水陆两路对大理发动突然袭击。潜伏在大理城下的数百名练勇利用夜暗,用棺木装火药将城墙炸开,夺占了东门城楼,但从洱海进攻的团练主力因遇到大风浪,未能按期到达,以致对大理的袭击又遭失败。不久,董家兰因援邓川(今洱源东南)被起义军击毙,张正泰亦因内讧被部下杀死。张董二人既死,所部团练军一蹶不振,陆续被起义军消灭。于是滇西起义军声势大振,乘机向四外发展。统治阶级惊恐万状,以致“是时无敢言复大理者”②。

因清军屡败,新任云贵总督张亮基于1860年1月奏请以总兵褚克昌署理云南提督,办理滇西军务。褚克昌率兵西上,经禄丰、楚雄,于3月间至镇南州,接任提督。他一面分兵进攻起义军占据的姚州、大姚,一面率主力继续西进。起义军为了收缩兵力,主动放弃沙桥(镇南西北)、云南驿(云南县东南)等据点,退守云南县城。褚克昌尾追至云南县城下,指挥所部清军进攻县城和弥渡、红岩(弥渡西北)等地。面对褚克昌部清军的大举进攻,杜文秀一面派人发动滇东、滇南回、汉、彝各族人民起义,以牵制清军,一面催调正在进攻缅宁(今临沧)的大都督蔡发春率军回援。同时,致书澂江马德新,请求派兵支援配合,以切断褚克昌部的后路,造成东西夹击的态势。

1858年,滇东、滇南起义军从昆明撤围散归各地之后,当时任巡抚的张亮基即调集清军向回民进攻,回民被迫起而自卫。马德新、马如龙因个人目的没有得到满足,也乘机再次起兵,于是滇东、滇南回民起义军又得到了发展。1860年春,马如龙受马德新之命,率部西援,4月底与李芳园部会合,共万余人,由南安州直逼楚雄。5月3日,攻克广通。5日,在回镫关(广通西南)大败楚雄援军,毙游击高天泽。8日,又在小腰站歼灭楚雄清军千余人,毙千总苏镇东。“楚雄得力将弁,无出高天泽、苏镇东右者,相继败没,兵勇夺气。”①5月21日,滇东、滇南起义军包围了楚雄府城。

连败两仗、士气低落的楚雄清军无力阻挡起义军的锐利攻势,楚雄知府杨觐向褚克昌求救。褚克昌正在进攻弥渡、红岩,无兵可派,只得尽撤镇南大营清兵赴援楚雄。6月4日,褚克昌亲抵楚雄府城。马如龙、李芳园指挥起义军昼夜围攻,于6月11日,用地雷轰塌城垣二十余丈,攻入城内。清军一部投降,大部被歼。知府杨觐、副将庆连等被打死,褚克昌逃往镇南。

起义军攻占楚雄,不但切断了清军的后路,而且由于清军官兵的父母妻子多寓居楚雄,以致军心瓦解,无意作战。尽避褚克昌部将杨有才、张玉柱所部清军攻占了弥渡和红岩,却无法摆脱这种不利的困境。而此时滇西起义军又从西面发动了强大的攻势,使清军腹背受敌,更形狼狈。起义军大都督蔡发春于1860年4月底攻陷缅宁后,即率领云州、顺宁、蒙化、缅宁起义军二万余东下,杨德明等也率大理、蒙化起义军八千余人,在云南县与之会合,联合向弥渡、红岩等地进攻。连日交战,清军伤亡惨重,褚克昌得力将领张福保、杨有才、陈开榜、王有才等被打死。褚克昌慌忙从镇南回到云南县大营指挥作战,仍无法挽回败局。清军粮尽兵溃,游击张玉柱、守备孙占魁率部投降起义军,红岩、弥渡先后失守。起义军随即进攻云南县清军大营,并分兵一路,由虎应龙、保文明、桂春亮率领,北攻宾川。这时马如龙率领的滇东、滇南起义军也先后攻占了南安州、镇南州和定远(今牟定)县城,控制了楚雄府全部州县。褚克昌见处在起义军东西夹击之下的云南县清军大营危在旦夕,便以往援宾川为借口,率部撤离,仅留守备周士杰等防守。蔡发春便集中兵力猛攻云南县清军大营,经十几天激战,全歼守敌,接着又转攻宾川。褚克昌扎营于宾川县城以北的太和村。蔡发春率起义军赶到后,首先占据宾川北山,切断清军粮路,然后实施包围。8月18日,起义军发起进攻,9月9日攻破宾川清军大营,全歼守敌,并杀死褚克昌。褚克昌全军覆灭,云南清军闻风丧胆,“自此愈不敢言西上矣”①。

这时的形势对回民起义军非常有利,如果杜文秀和马如龙加强团结,把滇西和滇东、滇南起义军统一起来,或者继续维持一定形式的联合,乘胜出击,扩大战果,则有可能置敌人于死地。但是,马如龙自谓有功,不愿居杜文秀之下,竟率滇东、滇南起义军返回澂江。不久,马如龙等第二次围攻昆明,徐元吉牺牲,围城仅十日即被迫撤围。

在杜文秀的指挥下,滇西起义军迅速扫清了大姚、姚州等地的残余清军,各将领乘胜向滇西各地清军发起进攻。蔡德春到楚雄与已参加了滇西起义军的李芳园会合后,于11月率军攻占了禄丰县和安宁州城。与此同时,陈义、杨德明、马金保、张遇泰①等率部攻占了鹤庆、剑川和丽江城;虎应龙、桂春亮率部进攻永北厅(治今永胜);蔡发春则率部返回云州、顺宁,转攻永昌府(治今保山)。1861年3月,蔡发春、陈义率部由南北两路包围了永昌府城,经数月围攻,于7月底攻克。8月,杨荣、张遇泰克云龙州城(今云龙),姚得胜、保文明、虎应龙克永北厅城。9月,马成克龙陵厅城。10月,蔡发春、马国玺克腾越厅城(今腾冲)。在此期间,滇西起义军还粉碎了署云南提督申有谋进攻大理的陰谋,夺回了被清军一度占领的广通、禄丰等城。申有谋狼狈不堪,率残兵不足千人逃回省城。至此,西达龙陵、腾越、云龙、永昌,东至楚雄、广通、元谋、禄丰,南至缅宁、顺宁、云州,北抵剑川、鹤庆、丽江、永北,滇西二十余厅州县都在大理政权的控制之下。

(三)杜文秀反对投降,坚持斗争

1861年底,马如龙联合昆陽杨振鹏和新兴田庆余部回民军,再次向昆明进发,开始对省城的第三衣围攻。1862年(同治元年)初,云南府所属各州县大都被起义军占据,昆明成为一座孤城。当时,兼署云贵总督的云南巡抚徐之铭迫于形势,改变了一意主剿的态度,一面准备向起义军发动军事进攻,一面派署提督林自清和署澂江知府岑毓英到起义军中“议和”,用高官厚禄引诱他们投降。马如龙认为机会难得,立即拜倒在敌人面前,声言“世受皇恩”①,“志在报效,历年汉回仇杀,不得已铤而走险,非敢叛逆,今愿率众投诚”②。1862年3月,马如龙、马德新、杨振鹏等人正式向敌人投降。为了表示对清朝的“忠顺”,马如龙等亲自到各地说降,胁迫起义军将士解散或撤退,将起义军占据的昆明四周的昆陽、新兴、晋宁、呈贡、嵩明、罗次、易门、富民等城拱手献给清军。他们的叛变行径受到了统治阶级的赏识,清廷授予马如龙“署理总兵”的官职,授予马德新以“二品伯克”之衔。

马如龙、马德新等降清后,杜文秀继续坚持反清斗争,滇西起义军成为统治阶级的心腹之患。马如龙、马德新等人在云南督抚大臣的授意下,接二连三地对杜文秀进行诱降活动。1862年夏,马如龙写信给杜文秀,并派杨振鹏前往大理,一面以高官厚禄诱劝杜文秀投降,一面以军事进攻相威胁。马如龙在6月2日(五月初六日)的信中声称:“如以和为非,则卧榻之侧,岂容他人鼾睡,官处必发兵西向。此时两迤(指滇东、滇南)既和,迤西(即滇西)孤立。前省[军]西发,每为东南所扰,故尔无功返。……刻下省垣无南顾之忧,官兵得专西伐之力,则迤西虽有数城之众,恐难敌全省之师。尔时欲迤南赴援,弟等已授职官,宜报朝廷,必无赴救之理。”③杜文秀既不为高官厚禄所动,也不理睬马如龙等的恐吓。在给杨振鹏的信中,他一针见血地指出,官府的所谓和议,“不过因江南未靖,西洋复来,各省纷争,天下鼎沸,暂为缓此急彼。俟彼处稍定,必将举全师以压我境。迨至彼时,[我兵已散,我将各离,]始知朝廷包藏祸心,则谋不及施,勇不及逞,嗷嗷待毙,悔之晚矣!”①6月下旬,杨振鹏到达大理,杜文秀仍严词拒绝,“坚执不从”。1863年夏,马如龙又派他的亲信马负图到大理劝降,杜文秀斩钉截铁地回答:“马云峰(马如龙号云峰)做马云峰的官,我杜文秀造我杜文秀之反。想我杜文秀归顺,除非黄河水清。不然,万万不能。”②1864年,马德新亲自出马,前往大理游说。杜文秀仍然拒绝讲和,说他“看不起那些身为革命领袖,倒反去接受压迫者手下的一点官职”③。这铿锵有力的言词,表现了杜文秀与清廷势不两立的坚定立场,粉碎了统治阶级的招降陰谋。

四、滇西起义军东征昆明(参见附图十一)

(一)东征前的形势

1863年6月,清廷调前两广总督劳崇光为云贵总督。劳崇光令署云南提督马如龙防守省城,筹集粮饷军火;令署理布政使岑毓英率军进攻滇西。8月,岑毓英率清军从昆明出发,于11月20日占领楚雄。此后,岑毓英以楚雄为基地,分兵向大理进犯。清军虽先后占领了大姚、永北、邓川、宾川、浪穹(今洱源)、赵州、云南、鹤庆、丽江等地,逼近大理的南北门户上下两关,但岑毓英所率主力却被起义军阻挡于镇南和姚州,无法前进。1864年2月,起义军在上关大败清军,并收复邓川、浪穹、鹤庆、丽江;不久,又败敌于下关,收复云南、赵州、弥渡。杜文秀乘胜派马得才率领援军从弥渡、三街间道插到镇南清军侧后,突然向敌人发起猛攻。清军大败(岑毓英也头部中槍),狼狈逃回楚雄。

粉碎岑毓英部的进攻之后,杜文秀领导滇西起义军乘胜向外发展,南面达于镇沅,北面达于维西。至1866年初,起义军控制了滇西二十三座城市,对清廷在云南的统治造成极大的威胁,于是,云贵总督劳崇光认为,“当以征剿迤西为急”①。3月,劳崇光到达昆明,便积极部署对大理的进攻。

经过将近一年的准备,署云南提督马如龙率领兵练八千九百余人,于1867年2月由昆明出发,并指挥督标中军副将杨振鹏、楚雄协副将李维述、参将杨先芝、游击合国安、昭通镇总兵杨盛宗、腾越镇总兵田仲兴、普洱镇总兵李锦文等部清军和地方团练,分数路向滇西进攻。清军虽然兵力不少,但士气低落,特别是其中的回民将领和士兵,大都不愿同滇西回民军打仗,加之遭到起义军的顽强抵抗,兵疲粮缺,进展缓慢。起义军除在各地坚守外,杜文秀又派出部队袭击清军的后路。清军惊慌失措,李维述败于镇南,杨振鹏溃于宾川,杨先芝、合国安溃于姚州,楚雄、大姚两地的清军先后告急。杨盛宗、田仲兴等也因粮饷不继,分别从永北、蒙化、威远等地败退。马如龙见败局已定,遂托病由定远撤军,逃回省城。回民起义军占领定远、大姚之后,进而包围了楚雄。

马如龙进攻滇西及其失败,是一个重要的事件,它对杜文秀的影响极大。在此之前,杜文秀虽然拒绝了统治阶级的诱降,但对马德新、马如龙等的叛徒嘴脸缺乏应有的认识,由于民族和宗教等方面的原因,与他们撕不破脸皮,反而与之达成协议,以楚雄、镇南东西分界,“各守疆界,各行其是”②,“不相侵犯,仍通互市”①。为恪守协议,杜文秀主张首先巩固滇西,必要时向川、黔发展,以避免与马德新、马如龙发生冲突。尽避由于太平天国革命失败,云贵总督劳崇光力主“进剿”,清军对大理政权的威胁越来越大,杜文秀仍然不准备向东发展。迨至马如龙进攻滇西,首先毁约,杜文秀才感到如果仍遵前约,无异于作茧自缚,加上这时清廷在云南的统治力量比较薄弱,劳崇光病死后,斩任云贵总督张凯嵩托病逗留四川,新任云南巡抚刘岳昭所率湘军尚在贵州,布政使岑毓英率所部清军赴贵州镇压猪拱箐、海马姑苗民起义未归,仅马如龙率一万五千残兵败将,龟缩省城。因此,杜文秀提议趁机东征昆明,并为绝大多数起义军将领所接受。

为大举东征,杜文秀发布了《帅府布告》、《誓师文》、《兴师檄文》等文件。在《誓师文》中说:“此次出师,本为兴汉,戒勿滥杀。如临其境,如遇其民,各当发明宗旨。但得汉回一心,以雪国耻,是为至要。”“战胜攻取之际,毋肆掳掠,毋贪财货,毋凌妇女。遇官吏顽梗不服者,杀之。良善被挟者,抚之。诸恶元凶,法所必诛,严加惩办,理宜不赦。”②同时,传檄全省:“滇南一省,回汉夷三教杂处,已千百年矣。出入相友,守望相助,何尝有畛域之分?慨自满清僭位以来,虐我人民二百年余[于]兹矣。”可恶,妖官“置苍生亦[于]不问,弃黎庶其如遗。甚至汉强则助汉以杀恶,回,回强则助回以杀汉,民不聊生,人心思乱。”“本帅目击时艰,念关民寞[瘼],不忍无辜之回为汉所杀,更不忍无辜之汉被回所,伤。爰举义师,以清妖孽。志在救劫救民,心存安回安汉。”③这些文告,控诉和揭露了清朝统治阶级制造民族矛盾,挑起民族仇杀的罪行,进一步阐明了以反清为主要目标的革命立场,提出了团结回汉各族人民共同进行斗争的方针政策,同时,对起义军规定了严格的群众纪律。这就从政治上打击了敌人,动员和争取了各族人民积极参加东征昆明的战争。

(二)昆明外围的激烈争夺

粉碎马如龙对滇西的进攻并进行必要准备后,杜文秀调集大理、楚雄、丽江、永昌、顺宁、永北、蒙化等地起义军十万余人(一说二十余万),由十八大司统率,分兵四路,向云南省城昆明发起大规模的进攻。其部署如下:北路由大司衡杨荣、大司阃马旭、大司勋米映山率领,从定远出发,占领琅黑等盐井、罗次、武定、富民后,进攻昆明城北;西路由大司政刘诚、大司令马清、大司藩安长兴、大司隶刘纲率领,在占领禄丰、易门、安宁、碧鸡关后,进攻昆明城西;东路由杨威大都督蔡廷栋、大司平马兴堂、大司寇李芳园等率领,从大姚出发,攻占元谋、禄劝、柯渡、杨林等地后,攻昆明城东;南路由大司戎马国春等率领,在占领楚雄、南安、广通等地后,攻昆明城南。杜文秀坐镇大理,指挥各路大军。

防守昆明的清军,是马如龙所部残兵败将,无法与起义军相抗衡。正在贵州与起义军作战的云南巡抚刘岳昭,令业已镇压了贵州猪拱箐苗民起义军刚回到云南的布政使岑毓英“严扼曲靖,控制省城”①。岑毓英驻军曲靖,派出一万一千余清军赴援昆明、楚雄等地,企图阻挡起义军向昆明的进军。

十万起义军分路并进,尽避围攻楚雄的起义军暂时受阻,但其余各部进展颇为顺利。1867年9月,起义军占领黑、白、琅等盐井,控制了盐井的税收,断绝了云南反动当局至关重要的财源;随后,在两个多月的时间里,连陷广通、禄丰、南安、元谋、武定、禄劝,切断了楚雄与昆明的联系。楚雄清军孤立无援,军火粮饷皆缺,12月18日,起义军一举攻占了该城。至此,起义军控制了滇西全境,后路毫无牵掣,军锋直指昆明。

1868年2月19日,杨荣等部北路军攻陷富民,西路军占领安宁。20日,上述两路起义军进至昆明城郊:北路军由富民进占昆明西北的团山、大普吉、梨烟村、夏家窑一带;西路军由安宁攻占昆明西面的碧鸡关、高嶢、梁家河、普坪等村寨。28日,南路军攻陷易门。起义军东征的节节胜利,使清军中的许多回族将领备受鼓舞,昆陽杨振鹏、新兴田庆余、澂江张元林、曲靖马天顺、寻甸马世德等,“悉举所据地方响应”①,杜文秀均授予大司之职。3月9日、10日,在杨振鹏、田庆余等配合下,南路起义军袭占了晋宁、呈贡,随后即进占昆明城南的西岳庙、五华寺等处。至此,起义军从北、西、南三面包围了省城昆明。护理云贵总督宋延春惊呼:“人心惊惶,省城危在旦夕”②。

清廷令云南巡抚刘岳昭率领所部湘军火速由黔入滇,以解昆明之围。在刘岳昭到达之前,防守昆明的署提督马如龙因在城外作战屡败,退入城内,采劝以防为剿”的方针,坚守不出,等待援军。他以“谋叛”的罪名捕杀了总兵合国安等数名回族将领,设立巡防总局,强迫军民日夜登城防守,并以自己和劝捐得来的资财充当军饷,以安定军心。

在有利的形势下,兵力居于优势的起义军不是一鼓作气向昆明城发动猛攻,而是列兵城下,利用附城的寺庙、堡寨,筑墙挖壕,企图凭借坚固的营垒“坐困”清军。这种持久围困的方针,使清军争得了时间,以调整力量、调派援军向起义军反扑。无疑,这对于远离根据地的起义军是极为不利的。而且,起义军虽然包围了昆明,但对城东封锁不严,金马寺至宜良的通道没有完全截断,城内清军仍可由此得到粮食接济以苟延残喘。起义军为阻截岑毓英的援兵,曾准备控制曲靖,由于行动不迅速果断,此计未行,而岑毓英的援军已进到昆明城下,从而使形势变得复杂起来。

1868年3月6日,岑毓英督率三万余清军,由曲靖赴援昆明:游击杨玉科率兵一部绕道四川会理,出奇兵抄袭起义军后路;岑毓英自率主力,进攻昆明城外的起义军。为了达成进攻的突然性,岑毓英扬言师出陆凉(今陆良),实际取道马龙、宜良,于3月14日秘密地进至离昆明七十里的七甸。随即指挥清军由黄土坡、水海子一带向起义军进攻,数日之内即占领了大小石坝、小板桥、官渡等地,切断了呈贡和江右馆起义军大营之间的联系。为了夺回小板桥要隘,扬威大都督蔡廷栋、大司戎马国春会同大司略杨振鹏、大司抚田庆余等率领数万起义军,于3月25日由呈贡猛攻该处清军。清军扼守要隘,以逸待劳,顶住了起义军的锐利攻势。待起义军疲惫之时,清军猛然出击,将起义军战败。接着,清军又攻占了昆明城东金马寺、古庭庵、大树营等地。这时岑毓英部副将杨国发等亦在杨林、大板桥等地扎营,准备进攻嵩明、寻甸。这样,就打通了省城东面的通道,保证了城内外清军的粮饷供给。

岑毓英指挥清军继续向江右馆、石虎冈等起义军据点进攻。起义军凭借坚固的工事,顽强抵抗。由于这些据点挖有地窖、交通壕和池塘,清军开花大炮的威力无法充分发挥,因此进攻难以奏效。同时,为了牵制进攻的清军,并重新控制滇东通道,切断清军的粮食补给,驻守晋宁的大司治张元林在击败临安兵练之后,乘胜进攻呈贡清军军营;蔡廷栋、李芳园联合寻甸、嵩明等地起义军,猛攻岑毓英部清军占据的杨林。呈贡、杨林同时吃紧,岑毓英“以杨林为东路咽喉”,只得“先其所急”,于5月7日亲自率部增援杨林。

5月上旬,新任云贵总督刘岳昭率二万余清军由贵州毕节到达曲靖,他认为“心须进攻寻甸,方可早解省围,争保东路”①,因而决定亲率所部湘军往攻寻甸,令新任云南巡抚岑毓英配合马如龙解昆明之围。岑毓英在解了杨林之围后,于7月初回到昆明城外距城十二里的响水闸大营,继续向昆明城郊起义军据点进攻。清军以巨大的伤亡为代价,占领了地处呈贡、宜良进省要道上的石虎冈和另外少数几个据点,但由于寻甸、澂江、新兴等地起义军不断供应粮米弹药,围城起义军仍可以凭借工事长期固守,使清军无法解除省城之围。因此,岑毓英决定改变战法,由马如龙坚守昆明,以一部兵力牵制围城起义军,而以主力围攻昆明外围州县的起义军,企图先“去其羽翼”,然后集中力量消灭孤立无援的围城起义军。8月,岑毓英率其主力亲赴呈贡前线,指挥清军作战。这样,连同杨玉科部滇军在内,清军在昆明外围东、南、北三个战场上,与起义军展开了激烈的争夺战。

1.呈贡、晋宁之战

晋宁、呈贡为昆明以南的重地,在昆陽、新兴等地起义军的支援和配合下,驻守晋宁的大司治张元林、驻守呈贡的大将军马开义各率起义军英勇作战,多次击败敌之进攻。岑毓英到呈贡前线时,正值晋宁和昆陽起义军在击溃临安兵练之后,前来救援呈贡,他趁晋宁城内起义军兵力薄弱之机,令署总兵梁士美部偷袭晋宁。8月19日傍晚,梁士美遣其弟梁士伟率军由江川(今江川江城)出发,夜行八十余里,绕过起义军的营垒,于20日凌晨前抵达晋宁城外。守城起义军疏于防守,清军夺门而入。大司治张元林率起义军英勇反击,驻扎城外的起义军也入城与之配合,挫败了敌人一举夺占全城的陰谋。岑毓英一面令游击何秀林、王正坤等猛攻呈贡,牵制起义军兵力,一面派游击岑宽德、都司刘重庆等带兵二千六百人由水路援晋宁。梁士伟因在城内进攻受阻,即分兵一部,与援军内外夹攻,占领了晋宁城外四乡。昆陽杨振鹏率起义军援救,遭水陆两路清军阻截,未能到达。8月底,清军攻占晋宁北面的归化,截断了晋宁、呈贡之间的陆路交通。接着,岑毓英又派总兵马忠等带兵三千名,由归化向晋宁进攻,截断了晋宁通澂江、昆陽的通道。晋宁起义军孤立无援,形势危急,但张元林仍率起义军在城内与敌人相持。

岑毓英见晋宁一时难以攻下,便令何秀林、王正坤日夜不停地猛攻呈贡。尽避晋宁危急,呈贡后路已断,起义军仍英勇奋战,打退了清军的多次进攻。9月29日,岑毓英“传齐各营,填壕而进”。清军四面架梯登城,冲入城内。起义军与清军展开巷战,奋战一夜,大将军马开义等三千余人英勇牺牲,呈贡终于失守。

清军攻占呈贡后,岑毓英即令何秀林率部攻澂江,王正坤率部助攻晋宁,他本人亦驰赴晋宁督战。杜文秀为救援晋宁起义军,派张禧和马天朝率援军万余人前往,扎营于城西南的观音山一带。澂江起义军也前往支援,扎营于城东的盘龙寺。为了阻止援军与城内起义军会合,岑毓英又调派张保和等率兵三千余赶至晋宁。11月2日,清军向观音山进攻,经过激战,起义军受挫,马天朝等牺牲。从澂江前来的援军亦因何秀林部清军进攻澂江而撤走。在晋宁起义军孤立无援的情况下,清军于11月3日发动总攻。经过一天一夜的激战,起义军弹药告竭,将士一千余人壮烈牺牲,张元林仅率少数人突出重围,转移至澂江。自8月20日清军攻入晋宁城内,至11月4日晋宁失守,起义军与清军在城内日夜交战,相持七十七日之久,充分表现了起义军将士英勇顽强的战斗意志和牺牲精神。

呈贡、晋宁先后失守,澂江日益孤立。张元林在作战中身受重伤,退入城内后,思想动摇,暗中向清军乞降。11月27日黎明,清军乘起义军不备,在张元林接应下,突然攻城。中郎将张鹏程等一千余起义军将士在战斗中牺牲,澂江落入敌手。

清军在南面战场上的胜利,打通了由省城通滇南的通道。岑毓英随即进驻省城昆明,与马如龙一起策划向起义军进攻。起义军由于丢失了呈贡、晋宁、澂江等重要地区,昆明城下部队的侧后暴露在敌人面前,处境十分不利。

2.富民、武定之战

为了牵制起义军的兵力,截断围攻昆明起义军的后路,杨玉科曾奉岑毓英之命,率领清军数千人,由东川绕道四川会理州,从阿鸡鲁渡口渡过金沙江,进入云南。杨玉科联络当地的团练武装,采取声东击西的手法,于1868年3月相继袭占了大姚县的苴却(今永仁县城)、元谋等地;4月,又占领了武定、禄劝。5月,驻守罗次的征南大将军张遇泰不战而降。随后,杨玉科率清军向富民进攻。

杨玉科部的迂回行动,威胁着起义军的后路。为了改变这种不利局面,杜文秀派大司卫姚得胜等率军数万由大理东援。6月中,起义军由大姚、禄丰、富民三路齐进,分攻元谋、罗次、武定。杨玉科在富民连吃败仗,只好收缩兵力,退守罗次。驻守富民城的大司衡杨荣率起义军尾追敌人,与禄丰起义军一起进攻罗次城。清军接连失败,杨玉科又被迫率部退守武定。起义军在收复元谋、罗次之后,立即集中兵力于武定方向,迫使岑毓英再次派兵前往增援。杨玉科在武定修筑土城碉楼,妄图扼险顽抗。起义军以湿木柴堆积成比城楼还高的柴楼,上面架设槍炮,轰击城内清军。柴楼遭清军破坏,起义军又挖掘地道,埋设地雷炸城,终于在11月1日占领了武定州城和禄劝县城。

3.寻甸之战

1868年3月,当滇西起义军进至昆明城郊时,马如龙部将杨先芝、马天顺、马文成等率部倒戈响应,随即东进占领了寻甸和嵩明州城。寻甸、嵩明是昆明东北的门户,战略地位极其重要。寻甸、嵩明起义军与围攻昆明的起义军互相呼应、配合,对清军威胁甚大。当时,刘岳昭所部湘军仍在贵州,仅总兵李家福率领的少数先遣部队到达曲靖,岑毓英则在昆明城下与起义军激战,均无力顾及寻甸、嵩明。

刘岳昭于5月7日,率军到达曲靖后,经过三个多月的准备,于8月开始督率所部湘军和新募黔勇二万余人,向寻甸进攻。其部署是:总兵李家福率部自马龙进,总兵谢景春率部自沾益进,总兵全祖凯率部自功山进。三路分进合击寻甸。8月9日,李家福部占领了寻甸东北的七星桥。接着,谢景春、全祖凯等部也相继夺占了清水沟、金所等要隘。清军扎营于近城的文笔山、凤凰山、望城坡等处,用大炮不断地向起义军轰击。起义军固守城内,顽强抵抗,清军久攻不下。12月,四川候补道刘岳曙(刘岳昭之弟)率领湘军二千八百名,由贵州到达云南,赶至寻甸增援,但仍无进展。

大司卫姚得胜、大司衡杨荣于攻占武定之后,即转旗东向,于1869年 1月21日占领果马,进至寻甸城下。1月30日夜晚,起义军突袭望城坡清军,敌营中大火突起,全祖凯部四处逃散。次日黎明,总兵谢景春部仓皇撤退,副将贺连璧也弃营逃窜,起义军乘胜占领七星桥、草坝等地。2月1日,起义军向文笔山清军大营发起攻击,清军纷纷败退,逃往曲靖、马龙、沾益等地,寻甸随之解围。

寻甸一战,回民起义军重创了刘岳昭部清军。刘岳昭哀叹:“诸军精锐大半损折,势难裹创复战”①。岑毓英也承认:“此次寻甸失利,……全局几至动冶②。

(三)东征的失败

昆明外围东、南、北三个战场的激烈争夺,起义军和清军各有胜负,总的形势是双方处于相持状态。岑毓英进驻昆明后,即派总兵李维述、参将张保和等配合杨玉科部向北线进攻,从1869年1月中旬到3月上旬,先后占领了富民、禄劝、武定、罗次等地。同一时期,杨荣、姚得胜率所部起义军在东线作战。当杨玉科率部进攻武定等地时,杨荣、姚得胜为牵制清军,由滇东向昆明进军。3月,起义军一举攻占省城东北重镇杨林,清军守将何秀林率部退守宜良。起义军乘胜由长坡向大板侨一带进攻,占据昆明城东小偏桥、十里铺、羊房凹、牛街、兴福寺等地,使省城清军大为震惊。4月,由马周率领的一支回民起义军也乘澂江空虚袭占了该城。

岑毓英慌忙调集杨玉科、张保和、吴永安、徐联魁、李廷标诸部救援省城。起义军由于缺乏统一的领导和指挥,各部之间不能协调一致地行动,因而没能趁此有利时机狠狠打击敌人。岑毓英利用起义军这个弱点,集中兵力向小偏桥一带猛攻。清军采取分割战术,将起义军隔为数段,然后各个击破。经过近二个月的反复争夺,至6月初,小偏桥、十里铺、长坡等要地均被清军攻占,起义军伤亡万余人。

起义军屯兵昆明城下一年有余,由于战线过长,后勤供应难于保证,粮食弹药时有短缺,加之传染病流行和频繁战斗,部队大量减员,特别是久攻昆明不克,战斗意志大受影响,士气逐渐消沉起来。清军攻占小偏桥、长坡等地之后,即向杨林进攻。起义军因大量伤亡,于6月11日撤出杨林。接着,岑毓宝由杨林、杨玉科由昆明合攻嵩明。在清军威逼之下,守将大司寇李芳园、大司平马兴堂挟持杜文秀派到前线监军的女儿蔡杜氏(蔡廷栋之妻)于6月13日不战而降。在此期间,刘岳昭部将李家福、刘岳曙亦率湘军向寻甸进攻,相继占领了七星桥、文笔山、望城坡等要隘,进逼州城。留守寻甸的大司理马天顺等动摇妥协,在清军剿抚兼施之下,竟于6月20日率军投降,寻甸、果马等地遂为清军占领。至此,清军完全控制了昆明以东地区。

岑毓英和马如龙坐镇省城,积极准备向围城起义军进行全面反攻。他们除雇请外国人训练清军使用从国外买进的新式大炮外,并调集大量清军回昆明,其中有岑毓英部将岑毓宝和岑毓琦所率滇军、刘岳昭部将李家福所率湘军及马天顺等部降军。1869年7月,清军首先进攻城南起义军阵地。至8月初,李家地、老鸦营、大营寺等地均为清军占领。老鸦营距南门外三捷桥清军营垒仅一里左右,是通起义军大营江右馆的必经之路。老鸦营失守,城西起义军和江右馆的联系便被切断。岑毓英一面派副将张保和率部攻昆陽、副将范清率部攻安宁、总兵李维述率部攻广通、副将杨玉科率部攻元谋、副将何秀林率部攻易门;一面施行离间计,使起义军将领不能团结对敌,反而互相疑忌。大司疆段成功粮尽,求借于扬威大都督蔡廷栋和大司令马清,蔡、马二人都不借给。9月18日,段成功遂向清军投降,将城南西岳庙一带二十余处营垒全部献给清军。岑毓英、马如龙乘起义军内乱之机,指挥清军向城南、城西、城北的起义军发动全面进攻。起义军营垒多被攻破,仅存城南江右馆、城北马村、城西土堆三处,但兵力已不足万人。9月20日,岑毓英、马如龙指挥清军合攻江右馆,起义军总理内阁大监军杨崇章被俘,扬威大都督蔡廷栋、大司徒安文义退守棉花行。马如龙亲临喊话,要求起义军首领“自相擒献”。在敌人的威逼下,蔡廷栋竟将安文义出卖给清军,向敌人屈膝投降。江右馆失守后,城北马村和城西土堆更加孤立。9月21日夜,驻守马村的大司勋米映山率五千名起义军冒雨突围,转移到城西土堆,与大司政刘诚率领的二千名起义军共同坚守。

至此,昆明东、南、北三面起义军阵地完全丢失,元谋、易门、大姚、广通、安宁等地也已失守,尽避城西土堆仍由起义军坚守(12月17日失守),但其后路已被切断,对省城昆明不再有多大威胁。这样,滇西回民起义军从1867年开始的东征就彻底失败了。

东征昆明是杜文秀起义以来最大的一次军事行动,也是云南以回民为主体的包括汉、彝各族人民在内的反清斗争的最高峰。它的失败,是云南回民起义战争由胜利走向失败的转折点。

五、大理保卫战

(一)战前形势

滇西起义军东征昆明失败之后,云南清军和起义军在力量对比上发生了根本性的变化,清军已逾十万,而起义军的力量则大大削弱了。占滇西起义军总兵力一半的十万东征大军,是最精锐的部队,几乎完全损失在东征战场上;众多的能征善战的起义军首领,有的作战牺牲,有的死于瘟疫,有的被俘,有的投敌,领导力量大不如前。形势的变化,越来越有利于清军而不利于起义军,因此,云南巡抚岑毓英决定进军滇西。

昆明解围之后,岑毓英和马如龙一面指挥清军继续围攻城西土堆等残存的起义军据点,一面调派部队向昆明外围州县进攻。至1869年10月初,清军相继占领了南安、楚雄、定远等地,进一步稳定了省城的局势。为了进攻滇西,岑毓英派人分赴湖南、湖北、江西、浙江等地,催调协饷,并奏请在重庆设立滇饷总局,以便于转解协饷入滇。总督刘岳昭也于10月7日由曲靖进驻昆明,留总兵谢景春部分防曲靖、马龙、寻甸等处,以保护滇东饷道。

在攻占南安、楚雄、定远等地之后,岑毓英即指挥清军分三路向滇西大举进攻。其部署如下:南路由迤南道张同寿、署普洱府知府许继衡等率领,由普洱进攻威远(今景谷)、缅宁,以牵制大理以南各地起义军;北路由永北厅同知刘昌笏等进攻永北厅城,署维西协中军都司张润等率部自维西进攻丽江府城,以阻止鹤庆、丽江、邓川、浪穹等地起义军南援大理;中路是主力,由杨玉科率部进攻姚州,都司张士进率部进攻镇南,都司钱大川等率部进攻云南县,守备陈定邦等率部进攻宾川,都司王钟祥等率部进攻弥渡,署镇沅州同知尉迟品玉等率部进攻镇沅与景东接壤之马街一带,待姚州得手后,直攻大理。

为了保卫大理,阻止清军长驱直进,杜文秀采取重点防守姚州、镇南等地,以一部兵力节节阻击的方针。

(二)大理外围的激战

姚州是起义军最早占据并大力经营的城市之一。它东界定远,北接大姚,南连镇南,地理位置极为重要,有大理屏藩之称。为防御清军进攻,起义军加固城墙,并在城外修土城、筑碉楼、挖壕沟,使它成为一座易守难攻的坚固堡垒。1869年10月,杨玉科占领定远后,即率徐联魁、段瑞梅、蒋宗汉、冯长寿等分数路包围了姚州。杨玉科扎大营于龙岗卫,指挥清军昼夜围攻。大司军马金保和大将军蓝平贵、大都督契有明率领起义军依托环城修筑的碉楼营垒,粉碎了敌人一次又一次的进攻。杨玉科无可奈何地说:“相持数月,射火鸦、翻草龙之技已穷,均不能克。又昼夜迭攻,贼殊死战。……枯索计谋而不得。”①12月中旬,清军攻占禄丰后,岑毓英增调总兵李维述部与张士进部合攻镇南。镇南为大理门户,地理位置同样十分重要,起义军“加意布置,以全力据守,猝不可拔”。②由于起义军在姚州和镇南两个军事要点顽强抵抗,牵制了清军大量兵力,迟滞了敌人的进攻,为杜文秀组织兵力阻击清军在其它方向的进攻赢得了时间。

南北两路清军进展较为顺利,至1870年初,南路占领了缅宁,北路占领了丽江、剑川。与此同时,中路的刘兴、王钟祥、丁跃龙、段瑞梅、钱大川、陈定邦等部清军(本为牵制起义军兵力的助攻部队)不顾主力受阻于姚州、镇南等情况,突出冒进,先后占领了弥渡、浪穹、邓川、红岩、云南驿和宾川等地,逼近了大理。为了保卫大理,杜文秀派大司衡杨荣率领一支机动部队赴援云南县,并分兵进攻宾川、浪穹、邓川等地清军。由于这些地区的清军孤军深入,兵力不足,这时营垒多陷,纷纷败退。起义军收复了邓川、浪穹、弥渡、红岩、云南驿等地。4月初,杨玉科部清军挖地道炸开城墙进入姚州城内,起义军顽强抵抗,与敌逐点争夺。清军付出了大量代价,才于5月1日全部占领该城。起义军将领马金保、蓝平贵被俘,契有明自焚而死,起义军六千余人壮烈牺牲。在镇南,尽避岑毓英派都司陆得成、林大任率开花炮队增援攻城清军,昼夜轰城,但仍无进展。

岑毓英认为,清军西进缓慢并屡次失利的原因:一是东南尚未肃清,不能集中全部兵力进攻滇西,特别是“澂江、新兴两城,围久不下”,“实为省城肘腋之患”①;二是军队纪律不严,诸将各不相下。因此,决定加紧对昆明东南回民军的进攻:马如龙亲率兵练与总兵田仲兴部合攻新兴;岑毓英亲率兵练往攻澂江。对进攻滇西的各部清军,则区分任务,各专其责:委杨玉科署鹤丽镇总兵,督办大理、丽江军务;委总兵李维述负责蒙化、赵州、云南军务。杨玉科派段瑞梅、蒋宗汉、徐联魁、冯长寿等各率所部分援邓川、浪穹、宾川、云南。起义军和清军在上述地区展开激烈争夺,各处得而复失,数易其手。

1870年9月3日,北路清军黄世昌、刘昌笏部占领了永北厅城。9月15日,杨玉科联合北路清军攻占鹤庆,接着率军南下,于10月底11月初夺占浪穹、邓川,进攻上关。至此,大理以北各州县尽为清军占领。

在大理东南,起义军和清军争夺也很激烈。1870年9月21日,李维述部终于占领了镇南,随后向云南县进攻。弥渡等地数次为清军占领,起义军又几次夺了回来。1871年5月,起义军大败清军,击毙都司陈定邦,又一次收复弥渡。徐联魁等部进攻下关,也为杨荣部击败,退回宾川。刘岳昭、岑毓英鉴于以上情况,令杨玉科部清军转攻为守,严扼要隘关口,以整训部队,筹集粮饷,待秋收以后继续进攻。

在大理西南,大司空李国纶率部守腾越,大司马杨德明、大可武马年玉率部守永昌,与当地清军相持。鉴于永昌为大理西南屏障,战略地位相当重要,杜文秀令东征时投敌后又逃回的蔡廷栋、段成功各率所部往援。但蔡、段二人不和,纠众相攻。后蔡廷栋遣人刺死段成功,兼并其众,率领大军于1871年6月25日占领永平,对于援救永昌并不积极。在此期间,杨玉科却派蒋宗汉等率军一万增援围攻永昌的参将李凤祥部清军。在蒋宗汉、李凤祥部联合进攻下,永昌城于9月7日失守。

1871年秋,岑毓英复令各部清军同时向起义军发起进攻,于是杨玉科部围攻水平,李维述、杨国发部急攻云南县,企图进而东西夹攻下关。11月,清军在攻占云南驿之后,李维述令参将李栋材率部进攻弥底(蜜滴)、瓦录、天生营等处。这一带是彝族聚居区,彝族起义军领袖李文学接受杜文秀授予的“大司藩”称号,负责镇守哀牢山区。清军攻瓦录逾月不下,李栋材中伏而死。起义军因胜而骄,遭清军袭击,弥底、瓦录、天生营一带遂于12月失陷,李文学突围他走。

1872年春,杜文秀派杨荣、蔡廷栋率援军由南涧、古郎一带攻云南驿等地,欲截断清军后路,但在小桥一带作战失利退回。5月初,清军攻占弥渡、红岩、南涧等地之后,李维述、杨国发遂率清军合攻云南县,5月22日占领县城。杨玉科部清军已于3月4日攻占曲硐(永平南),4月21日占领漾濞,继而进攻下关。当得知李维述等已占领云南县城时,杨玉科立即赶至云南县,部署向赵州进攻。赵州是大理南路咽喉,逼近下关。6月1日,杨玉科督率徐联魁等部由云南县、都司周作祥部由洱海东向陽堡南下,两路夹攻赵州。6月4日,杜文秀亲率杨荣、蔡廷栋等万余人由大理下关援赵州,遭清军截击败回。6月8日,赵州陷落,清军进逼下关。

6月9日,杨玉科即指挥清军同时向上下两关发起进攻。其部署是:段瑞梅率部攻上关,都司李应举率部由间道进扎花甸以袭上关之后;徐联魁等率部助攻下关,并由蒋宗汉率部由漾濞越点苍山,偷袭下关侧后;杨玉科率主力从正面进攻下关;守备董良弼率水勇乘船往来于洱海之上,侦察起义军的虚实。上关和下关各距大理数十里,是大理的南北门户。起义军在上下关均筑有石城,城外又筑起数道长垣。驻守上关的是马国玺、马锡晋,驻守下关的是蔡廷栋。由于起义军防守严密,清军无隙可乘,几次进攻都遭失败,杨玉科只得退回赵州城北的汉邑村。他探知驻守下关清风桥和天生桥的董正兴、鲁达二人不是回民,便派人进行分化瓦解,“招其来降,约期内应”①。同时,又派出兵士扮作盐贩,混入两关,收买居民,以配合清军的进攻。6月12日,清军又发起进攻,蒋宗汉率部翻越点苍山斜陽峰,鲁达投降,清军抄入关后。幸大司勋马荣耀率援军赶到,截其归路,清军战守失措,狼狈逃窜。杨玉科急派千余清军渡过洱海攻起义军营垒。驻守下关外关的董正兴投降,清军夺占清风桥,进入内关。蔡廷栋和马荣耀被迫退守大理,下关遂为清军占领。同日,上关也被段瑞梅、李应举等部清军攻占。上下两关的丢失,严重地威胁着大理的安全。

(三)大理失陷与起义的最后失败

进入上关、下关的清军达十余万人②,大理城内的起义军连同家属老小仅五六万人,力量相差甚大。尽避如此,杜文秀和起义军将士仍然毫不畏惧,为了保卫大理政权,决心与清军战斗到底。

1872年6月12日,清军乘胜从南北两面向大理发起进攻。当南路清军进至离大理城仅一里左右、北路清军经喜洲进至湾桥时,杜文秀命杨荣等率起义军主动出战,予敌人以迎头痛击。清军大败,蒋宗汉等率南路退至太和村,段瑞梅等率北路退至喜洲。正在这时,进攻蒙化的李维述部清军告急,杨玉科率二千五百人往援。大理起义军随即出击,大败蒋宗汉、徐联魁部清军,占领大井旁、砖窑、葭蓬村、重邑村等处。

6月22日,清军攻占蒙化城,李维述率所部向蒙化厅属大小围埂进攻,杨玉科则回到下关,继续部署进攻大理。由于起义军固守营垒,顽强抵抗,清军只得采取步步为营的战术,对大理周围的村寨和起义军营垒逐点攻击。起义军浴血奋战,英勇杀敌,杜文秀也经常亲自披甲上阵。但终因兵力不足,武器不如敌人,城外一百余碉楼营垒陆续失守。11月初,清军进至城下,包围了大理城。

起义军在城周围挖有壕沟,壕边修有隐蔽的地下工事数十座,上面覆以泥土,四周砌以砖石,并有地道与城里相通。清军进至壕边时,隐藏在工事里的起义军通过工事的暗孔向敌人射击,清军屡进屡却,死伤颇多。后清军引苍山溪水淹灌地下工事,迫使起义军退回城里。清军随即越过城壕,在城下扎营,并筑起高过城墙的炮台数座,用大炮不断向城内轰击。杨玉科又指挥清军开挖地道,准备炸城。

大理被围日久,情况一天比一天险恶。当时,滇东、滇南地区的起义军已完全被岑毓英、马如龙镇压下去。滇西除大理外,仅腾越、顺宁、云州数地未被清军占领。顺宁、云州等地起义军屡欲赴援大理,都被清军杨萃、尉迟品玉等部阻截,因此,大理完全成为一座孤城。为了早日攻下大理,岑毓英于12月初亲自率军由昆明启程西进。更为严重的是,随着形势的不断恶化,起义军中的投降势力逐渐抬头,内部危机加深。

12月10日,清军地道挖成,炸开东南角城墙攻入城内。起义军顽强抵抗,清军死伤甚众,被迫退出。以后,清军又多处挖地道炸城,攻入城内,起义军拚死反击。至17日,清军终于占领了城内校尝莲花池一带,起义军退至西北半城。20日,清军又到援军五千余人,杨玉科改单从东南一个方向进攻为四面同时进攻,又将开花大炮二十门排列城上,昼夜轰击。起义军营垒碉堡大半被毁,形势十分危急。杜文秀决心与清军决一死战,至万难固守之时,再弃而他走,或率全家老小,投洱海以殉。但杨荣、蔡廷栋思想动摇,暗中向清军求降,并力劝杜文秀出城投敌。杜文秀还收到赵州知州唐澍的劝降信。他考虑到“与其陷万人于锋镝,曷若捐一驱[躯]以救生灵”,遂决意出城“请罪伏诛”,以求“过咎归某一人,法律休波万姓”。①12月27日,杜文秀服毒后乘轿子到达杨玉科大营。杨玉科将其头割下,向岑毓英报功。岑毓英急从离大理一百二十里的红岩赶到大理,纵兵血洗大理城。

大理陷落后,岑毓英移兵攻顺宁、云州、腾越。1873年3月,清军攻陷顺宁,4月又占领云州。5月,起义军最后一座城市腾越失守。至此,坚持了十八年之久的云南回民起义完全失败了。