而在宁夏镇城的叛军阵营中,也发生了内变。指挥赵承光、葛臣、戚钦,武生张遐龄,百户姚钦等人,与城外官军取得联络,并与官军秘密相约,愿意作为内应。他们与官军约好,半夜在宁夏镇城楼的四面并举烽火,城下的官军见到烽火后就立刻爬上城墙。
到了约定的时间,赵承光等人在宁夏镇城楼上举起烽火,谯楼上的烽火一下子就亮了起来,南城的烽火也跟着亮了起来。赵承光等人在城中擂鼓,大呼杀贼。叛军早已经发觉,把赵承光、戚钦等人捆绑起来杀害了。尽管及时杀死了“内贼”,叛军还是受到了惊吓。伪右副总兵许朝想开小南门逃走,因为城外官军严阵以待而不敢出城,这时候城中粮食将尽,叛军锐气大减。
七月二日,伪右副总兵许朝等人来到南关,请求与宁夏总兵董一奎恳谈,但是未能成功。之前被叛军劫持的佥事隋府,则趁机同家人带着官印从城上跃下,结果隋府因胳膊受伤而不能起来。叛军发现后出城,把隋府抓回下狱。
七月三日,总督叶梦熊与监军梅国桢确定计策,认为应该决开黄河大坝,将黄河水灌进宁夏镇城。这与丰臣秀吉水淹高松城,用的是同一招。决策既定,官军就绕宁夏镇城筑堤,历经14天,终于在十七日筑成,长1700尺,之后便决水灌城。
在官军对宁夏镇城用水攻之前,哱拜派出其养子克力盖,前去河套蒙古部落的酋长著力兔处求援。提督李如松刺探到这个情报,命裨将李宁追杀克力盖,缴获信符、令箭。但是不知道是什么原因,河套蒙古部落的另外两个酋长,庄秃赖和卜失兔,突然集合3万人攻入大明境内。他们派出一个叫土昧铁雷的手下,作为先锋去侵犯定边、小盐池。
无论河套蒙古部落是在未接到哱拜求援的情况下突然入侵明境,还是因为通过某种渠道收到了哱拜的求援才出兵,都确实对哱拜起到了侧翼援助的作用。此外,河套蒙古部落还有另外一个酋长,叫作打正,他之前与哱拜有过一次合作的经历,这次也从花马池西的沙湃口出发入寇明境。
为了对付河套蒙古部落,总督叶梦熊派遣麻贵去迎击打正,另派董一元去捣毁土昧铁雷藏身的地方。麻贵出击后,在石沟一地与打正交战,打正失利退去,分兵趋向下马关、鸣沙州。而董一元这边,也找到了土昧铁雷,他杀敌130多人,之后夸大战绩,向叶梦熊报告说斩首 3000余级。河套蒙古军闻讯大惊,全部引兵退去。叶梦熊派遣游击龚子敬率领苗族军队800人,在沙湃口堵截打正的退路。苗族军队冲锋在前,但由于人少不敌,被围十余匝,龚子敬奋力作战而死,全军覆没。虽然龚子敬战死,但河套蒙古军最终还是退去了,宁夏叛军外援断绝。
在击退了河套蒙古部落后,官军便加速开决大坝水,用水来灌宁夏镇城。八月一日,宁夏镇城外的水深八九尺,整个城的外围都被水淹了。为了突围,叛军当夜乘坐小船挖堤放水,被官军擒杀16人、俘虏1人。据俘虏交代,城中缺乏粮食,军士皆食马肉,马还剩500多匹,百 姓只能吃树皮,死亡人数不断上升。
但由于官军筑造的堤坝被叛军部分毁坏,到了第二天,城东、城西的大堤崩溃了100余丈,都司吴世显、参将来保所筑大堤也各崩溃20余丈,水顿时减少。总督叶梦熊斩吴世显以警示众人,来保则凭借先前在灵州立下的战功而免罪,继续全力修补大堤。叛军几次出兵来骚扰,都被官军斩杀、俘获。而这时候,河套蒙古部落又入寇明境,出兵来救援宁夏叛军。
八月二十一日,河套蒙古部落的酋长著力兔派800骑兵入侵镇北堡,又派兵1万入侵李刚堡,之后分兵渡过黄河。提督李如松派裨将李宁飞驰赴黄峡口,迎击河套蒙古军,自己则率领精兵千余人策应。李如松行军至张亮堡时,与河套蒙古军遭遇,与之搏战。两军从卯时打到巳时,因为敌寇实在强锐,明军未能将对方击败。为了振奋士气,李如松持剑杀死了两名行动迟缓的士兵。正好麻贵和李如松的弟弟李如樟等人赶到,明军纵左、右两翼夹攻敌寇,于是河套蒙古军战败而走。明军追杀至贺兰山,河套蒙古军全部逃往塞外。追击中,明军捕杀了120余人,缴获骆驼、马匹无无数。之后官军将蒙古兵首级出示给叛军,叛军为此感到丧气。
九月三日,参将杨文率领浙江兵抵达战场,来支援官军。过了不久,苗兵、庄浪兵也抵达了战场。官军再次得到援军补充后,大规模整顿攻城器械,定下攻城期限。总督叶梦熊在军中张贴告示,称最先冲到城下的,赏赐万金。
五天以后,因为被水浸蚀的关系,宁夏镇城的北关城墙崩倒。守卫北关的叛军将领薛永寿等人认为大势已去,于是与官军约为内应。官军趁机定下声东击西之计,假装调集船筏进击北关。伪左副总兵哱承恩、伪右副总兵许朝不知是计,急赴北关督兵鏖战。这时候,提督李如松、参将萧如薰率领精锐掩杀南关,已经70岁的牛秉忠,凭借勇力率先登上南关。军监梅国桢以此激励将士奋战,于是官军士气高涨,争相登上南关。但随后,叛军退据内城,官军攻打了几天也无法攻克。
即便如此,伪左副总兵哱承恩还是大为丧气,连忙把之前俘获的官军劝降使者张杰送出城去,请求官军饶他们不死。因为叛军反复无常,总督叶梦熊假装允诺,但是暗中继续治办攻城器械,并再次派人进城离间叛军头目。
九月十六日,官军围攻越发紧迫。由于长期被围,叛军内部难免意见不合,于是被官军成功离间,很快因私事产生矛盾,在绝境中相互猜疑,自相残杀。先是伪总兵刘东旸杀死伪左参将土文秀,后是伪左副总兵哱承恩与刘东旸的部下周国柱密谋,哱承恩杀死了伪右副总兵许朝,周国柱又杀死了他的长官刘东旸。到最后,叛军主将只剩下了哱氏一族。哱承恩不敢再负隅顽抗下去,他将刘东旸、许朝、土文秀三名叛军首领的首级悬挂在城楼上,向官军显示投降的诚意。官军望见后,士气大为振奋,提督李如松、参将杨文率先登城,萧如薰、麻贵、刘承嗣等人随后跟上,宁夏镇城全部平定。此时,哱氏仍然拥有家丁组成的军队,总督叶梦熊在灵州听说后,急忙传令次日早晨一定要灭掉哱氏。
第二天早晨,身为败军之将的叛军头目哱承恩去南门拜见军监梅国桢。梅国桢一出来,参将杨文就抓住了哱承恩。李如松急忙率兵包围哱拜家,哱拜和他的家丁仍然想要抵抗,李如松便举起弓箭,喝令哱拜等人放弃抵抗。哱拜走投无路,仓皇上吊自杀。
李如松之弟李如樟的部将何世恩在火中砍下了哱拜的首级,官军又生俘哱拜次子哱承宠、养子哱洪大,以及同党土文德、何应时、陈雷、白鸾、陈继武等人。总督叶梦熊、巡抚朱正色、军监梅国桢等随后进入宁夏镇城中,慰问宗室、官吏、百姓。叶梦熊为斩草除根,下令将哱拜的同伙和投降的2000余人就地处死,而哱氏一族的叛乱首脑则被献俘到北京。宁夏叛乱就此宣告平定,官军向朝廷报捷,明神宗登殿受群臣祝贺。
之后,明神宗下诏处死哱承恩、哱承宠、哱洪大、土文德等人,又下诏慰问被叛军劫持的宁夏庆王,免除宁夏田租,并大赏平叛功臣,允许叶梦熊、朱正色、梅国桢的子孙世袭官职。武臣李如松功劳第一,加封宫保。其余人,如萧如薰、麻贵、刘承嗣、李如樟、杨文、牛秉忠等也陆续受封,并追赠战死的龚子敬为都督佥事。
宁夏叛乱告平后,明朝终于免除了在宁夏、朝鲜两线作战的巨大隐患,可以倾力对付侵略朝鲜的日军。