万历二十一年春,西南边陲的平静被彻底打破。播州世袭土司杨应龙,因与朝廷矛盾激化,首次与明军兵戎相见。朝廷急命文臣王继光、武将刘承嗣与郭成,分三路大军进剿。熟谙地形的杨应龙巧施“声东击西”之计,表面佯装约降,暗中却集结精兵据守险关,猛然冲杀。此役结果,一路明军遭遇惨败,死伤过半,其余部队亦无功而返,朝廷的首次征剿以失利告终。
杨应龙大败官军,震动朝野。主帅王继光被革职查办,朝廷的应对策略也从急剿转为缓图,新任官员更倾向于招抚。面对朝廷态度的转变,杨应龙虽表面认罪服软,立誓保境安民,内心却已埋下不满的种子。朝廷最终决定革去其土司职务,并罚其“输四万金助采木”。这一处罚令杨应龙大为不满,加之其被押作人质的次子杨可栋在京城意外身亡,使他悲痛欲绝,与朝廷的裂痕彻底无法弥合。他不仅拒缴罚金,更公然“拥兵驱千余僧”为子招魂,反意已昭然若揭。
万历二十四年,积怨已深的杨应龙终于公开举起反旗。此时,明朝正将主要精力集中于遥远的朝鲜战场(即万历三大征中的朝鲜之役),西南防务空虚。杨应龙趁机大肆扩张,不断出兵袭扰川、黔、湖广交界地区,势力迅速膨胀。至万历二十七年,战火全面点燃。贵州巡抚江东之率先发兵三千征讨,却在飞练堡遭播军诱敌深入,全军覆没。江东之被罢免,朝廷至此方知事态严重性。
同年六月,冲突因綦江参将房嘉宠滥杀播民而急剧升级。杨应龙以此为号,倾巢而出,率八万大军猛攻綦江城。城破后,播军进行了残酷的屠戮,五千官兵罹难,尸体被抛入江中,以致“江水为赤”。此战震惊全国,杨应龙随后退守,并立碑划界,宣称更广大区域为播州故土,同时联合当地苗部,构筑起庞大的防御同盟。消息传至京师,明神宗勃然大怒,决心彻底解决播州问题。
万历二十七年十月,朝廷启用能臣李化龙,总督四川、湖广、贵州军务,调集浙、闽、滇、粤等省精锐,筹备大规模平叛。杨应龙则加紧修缮海龙屯等天险要塞,企图凭险固守。万历二十八年正月,明军完成集结,在李化龙指挥下,分八路大军,总计二十四万兵力,发动了空前规模的围剿。其中,刘綎部骁勇善战,于三月二十九日一举攻克天险娄山关,打开了通往播州腹地的门户。杨应龙被迫率残部退守最后的堡垒——海龙屯。
海龙屯地势险绝,易守难攻。自五月起,明军将其重重包围,轮番猛攻。播军凭滚木礌石苦苦支撑,主将杨珠亦战死。战事持续四十余日,阴雨连绵,战斗异常艰苦。期间,李化龙甚至因父丧而“穿戴丧服”继续指挥,可见朝廷决心之坚。六月初四,天气放晴,明军发动总攻。次日,官军敢死队攀岩而上,突破土城。六月初六凌晨,明军最终攻破核心关隘。杨应龙见大势已去,与二妾闭户自缢,并试图举火自焚。官军及时扑入,将其尸体拖出火海,其子杨朝栋等百余人被俘。历时百余日的播州之役,以杨氏政权的彻底覆灭而告终。
这场战役深刻影响了明朝的西南边疆治理。战后,朝廷废除播州宣慰司,实行“改土归流”,将其地分设遵义、平越二府,分别划归四川与贵州管辖,大大加强了中央政府对西南地区的直接控制。此役不仅消耗了明朝大量国力,也与同时期的宁夏之役、朝鲜之役并称为“万历三大征”,成为明王朝由盛转衰过程中的重要标志性事件之一。