秦王孙可望于明永历十一年发动内讧,于贵州进兵云南,意在消灭与自己水火不容的晋王李定国,继而夺取永历政权,李定国于曲靖交水一带引兵迎战,孙可望前军白文选不愿与李定国交战,率军反正,孙军前军大乱,白军反冲孙可望大将马维兴营垒,可望军崩溃,孙可望失败逃回贵州,沿途城池守军拒不接纳,孙可望不得已向清廷湖南当局乞降,这年十二月孙可望被封为义王。孙可望之乱纵然是自身的嚣张跋扈和不得人所致,但也和南明朝廷自身的腐败和对原起义军将领的偏见不无关系,1649年孙可望军数十万降明明廷对一个王号,竟也不愿意授予孙可望,相反孙可望战败投诚清廷当即封其为以王,南明政权崩溃之原因,由此窥见一二。
孙可望投敌给抗清带来极其恶劣的影响,孙向清廷出卖西南永历政权的虚实,并对明军将领展开诱降,并为之后清军进攻西南引路。
一六五八年清顺治十五年正月初九,清军向永历朝廷发动大规模进攻,到十一月,南明军队全线溃败,贵州失守。在云南的永历朝廷被迫于十二月十五日,撤离昆明。1659年清军逼近腾越州,李定国决定在怒江以西二十里的磨盘山伏击清军,明军于磨盘山羊肠小路两旁设下埋伏,窦名望为初伏,高文贵为二伏,王国玺为三伏,在谷中埋设地雷。吴三桂等部清军之前未遇较大抵抗,一头扎进一伏击区,关键时刻光禄寺少卿卢桂生降敌出卖明军,吴三桂大惊,与道路两旁搜杀明军,死者无数,一伏主将窦名望不得不下令出战,二伏三伏明军也冲向清军,明清双方展开了最后一场大规模交锋,在惊心动魄的血战中明军将领窦名望,高文贵,张天龙,殷有荣等人战死,明军伤亡殆尽。李定国不得不撤出战斗。双方战斗从早上一直打到中午。此战后,参战明军已经兵不满万,李定国无力回天。
而清军伤亡一样巨大,清将额山固真沙里布,祖泽润,多婆罗,干图,扎喀纳等人战死,临近上山的上万人几乎无一生还,清廷气急败坏,惩罚统军将领,多罗郡王多尼罚银五千,多罗贝勒杜兰罚银二千,多罗平郡王罗可铎罚银四千,征南将军赵布泰革职为民。
磨盘山战后,全滇明军虽然为数尚多,却早已陷入混乱之中,无法再给清军以有力打击,加之永历皇帝逃往缅甸,南明覆亡已不可避免。