清同治十一年(1872年)八月,官兵已将大理城外的回民军营地扫除百余座,最难攻的当数城西北的三塔寺、东岳庙,一塔寺、城南楼营房,城东五里桥、龙庄、鹿角庄、上兑、下兑、丰呈庄。杨玉科反反复复察看了几次,才分出头尾,于是令三将各带一军,先钳制丰呈庄、上、下兑;令蒋炳堂率一军抄出楼营房,以阻城中出来的援军;令二将领壮勇强攻五里桥,自己亲自督阵,先破五里桥。五里桥好比蛇头,蛇无头必死。拿下五里桥后,东南、城南、西北三塔寺等障碍尽除,惟丰呈庄、一塔寺未拔。部队逼近城濠下寨,丰呈庄以前就是回民居住的村庄,人烟稠密,是个大村落,位于大理城东南角,距城五里左右,防护设施坚固周全。村庄内粮草充裕,军火齐备,有悍回数千,征东大将军沙得全、果勇都督沙万斗及回民将军、都督三十余名负责把守,号称大理城外仓库。不破此处,后患无穷,城内回民军见官兵进攻丰呈庄,初四日大队人马冲出城来支援,想分散攻庄官兵注意力。官兵按预定目标,三路夹击,回民军大败,官兵乘势夺下南街。

杨玉科再下令重赏有功之人,可大家都知道粮饷久虚,丰呈庄城墙坚固难攻,畏缩不前。杨玉科万不得已,以身作则,率领亲兵冒着回民军的枪林弹雨进攻,身上多处被石头砸伤,攻入村内架梯登屋时,左右手食指均被打断,胜败在此一举,只能忍痛督战。回民军征东大将军沙得全带着敢死队与官兵拼杀,杨玉科下令围攻,堆柴架火,将沙得全敢死队全部活活烧死,有逃出的,皆歼杀无遗,丰呈庄遂平。接着开始进攻大理府城,杨玉科一边令人放掉护城河水,一边让人翻草填垫城濠,与此同时强令官兵开挖地道数十条。回民军见官兵攻城急,倾刻间像疯了一样,披头散发,手执火蛋火棰及喷筒,大呼拼命,蜂拥着从四面八方向官军扑来。杨玉科见其锋锐,下令稳扎稳打,不可轻举妄动。回民军见官兵不出战,怒将官兵营房烧毁两座后,无耐退回城内。此后,回民军死党不时出城骚扰,均未取得实质性战果。自十月初八至十五日,双方鏖战于城墙下八昼夜,将不卸甲,兵不释戈,互有伤亡。回民军施计从城内挖洞出,在城濠中架起碉楼,周边砌上石头,只留枪眼,颇能伤人,再挖地道想炸毁官兵营垒,杨玉科下令官兵深挖明槽,粉碎了回民军的阴谋。回民军又制作土笼,人藏在笼内滚动,遍地偷袭官兵。杨玉科令官兵挖坑,在坑内埋上火药,土笼滚入坑内引发火药,炸得土笼内的人员乱飞。剩下最难对付的是濠中木笼内的回民,他能伤你,你却无法伤他,杨玉科到实地一看,计上心来,赶快令人把水又放进护城河,回民军见水至,仓惶逃窜。

杨玉科鏖战大理府城始末

第二天,又令人放水填濠,回民军大股涌出城来,杨玉科命人迅速将四道城门堵住,争相拼杀,阵斩六百余人,生擒大将军沙万才、马三冢宰及回民军精锐五十余名,立即正法。官兵乘夜越过护城濠,在东南面立起木营三十余座,筑起大炮台数座,挖掘地道数十个。二十七日凌晨,连放四穴地炮,轰倒城墙数十丈,引兵杀入城内,城内明碉暗堡不计其数,官兵伤亡惨重。又挖地道百余穴,于冬月十日、十一日次第放炮,又轰倒城墙百余丈,官兵冲入还是处处受阻,只能退回缺口扎营。再从缺口挖地道,十四日一齐施放,始将回民军木笼营尽行轰塌,回民军又退到东城楼及校场土城房屋内拒守。杨玉科令部下扎营轮攻,日夜不息。回民军又从西北两地道穿城而出立营,妄想与一塔寺等处守军联络,杨玉科率众将一塔寺及外出回民军尽行消灭,命将士填城濠而过,将回民军防御设施尽行捣毁。杜文秀眼见形势危急,于二十五日召集部下率万余人来战。杨玉科不敢大意,亲自督兵迎敌,战至二十六日黎明双方胶着在一起,均不能撤队。各地官兵闻杜文秀出战,纷纷带劲旅而来,更番叠战,尸骸枕藉,血流成渠,毙回民军约五六千人,杜文秀溃入城内死守。第二天大司衡杨荣、扬威大都督蔡廷栋率领回民军及众多百姓走出北门,爬在地上哀嚎,哭声震地,说愿意把杜文秀捆绑献给官兵,腾出城池,恳求官兵免杀老幼妇女。杨玉科见其惨状,心生哀怜,觉得攻城不如攻心,兵战不如心战,遂答应了他们的请求。

次日,果见杜文秀被反绑双手,勉强坐在轿上出来投降,见到杨玉科,有气无力对他说:“大人好兵法,请留老幼妇女之命,余请就死。”当时他早已服毒,待解至老营已气绝身亡。杨玉科赶快令人砍下其头颅,并衣冠、金银印十余颗、铜木质印四千余颗解赴岑毓英大营。时大理城内,除老幼妇女外,回民军人数不下几万人,且多是回民军首领,皆为身经百战而余生之人,他们把杜文秀献出来,却仍据守在城内。杨玉科下令由官兵进城换防,要回民军在三天内收缴兵器、献出城池、赶造丁口清册,凭籍遣散归农。回民军疑心重重,答应让文武官员一二人带兵二百名进城安抚,并言要半年后才能让出城池。见他们穷途末路还敢提出如此条件,让杨玉科再次认识到回民军的狡诈。十二月初四日,岑毓英来到五里桥,杨玉科赶去拜见,说到此事,岑毓英完全赞同杨玉科的意见,认为大理回民军穷凶极恶,天理当诛,王法不容。与岑毓英达成共识后,杨玉科毅然决定既然你诈降,那我就智取。于是挑选敢死队二百名,各备干粮、军火,让段春堂带领进城招抚,趁早与驻校场、莲花池官军取得联系。

初七日,杨玉科带五营亲兵,命各带干粮及袖枪短剑,以游览大元帅府为名直入城内。回民老弱躬腰在道左侧迎接。杨玉科已事先得知帅府中埋有地炮数处,回民军准备请他进入帅府λ坐时,再实施谋害计划。杨玉科不请自入,让回民军乱了方寸,知计已泄露,突然冲出四五千人层层围攻,还好事先有准备,回民军没法攻入。东南城内官军闻声杀来,西北城楼也被各路官兵夺取,四路官军争先恐后围拢杀来,在巷道内展开肉搏战。杨玉科率众从帅府杀出,里外夹击,至初十日,官兵伤亡数百,而回民军已被斩杀万余人。十一日回民军抵挡不住,由东北夺路狂奔,官兵追击截杀,擒获大经略、大司骑、大司衡三十余名,送岑毓英处正法。城外各乡村被杀回民军也以万计,其余妇女散归各自属地。杨玉科率领官军经过艰苦鏖战,终攻克了被大理回民政权占据十六年的大理府城。