蜀地爆发农民起义,李顺率众攻杀县令,震动朝廷。宋太宗赵炯召开御前会议,参知政事赵昌言力主武力镇压,反对招安,认为需以兵威震慑叛乱。朝廷最终任命宦官王继恩为两川招安使,率五万西征军入川平叛,并命雷友忠统筹粮饷。
起义军首领李顺派杨广攻剑门,遭剑门都监上官正与援军夹击惨败。李顺因兵败斩杀杨广及残兵,引发军心涣散。随后,李顺率十万众围攻子州,但守将张邕早有防备,依托城防坚守两月,起义军久攻不下。此时王继恩率西征军连破绵州、巴州等七地,直逼成都,对李顺形成合围。
成都决战中,王继恩指挥官兵架云梯昼夜攻城,起义军巷战力竭,李顺被擒杀,三万义军阵亡。余部张瑜逃出城外收拢残兵,意图再起。自王小波起兵至李顺覆灭,川中起义历时半年,终因军事策略失误与官军强势镇压而失败。宦官典兵之策虽争议重重,但短期内遏制了叛乱扩散。