在朱宸濠率兵六万自九江沿江而下、窥伺南京的时候,王守仁已经率领仓促组建的八万平叛军,直捣宁王的老巢——南昌,迫使朱宸濠回援。当时有人建议王守仁往救安庆,他不肯,分析说:如果救安庆,与宁王主力相持江上,而南康和九江的敌人就会乘虚攻我后背,我们腹背受敌;而我们直捣南昌,南昌守备空虚,我们的军队锐气正足,必可一举而下;宁王必定回救,到时我们迎头痛击,肯定会取胜。后来的事实果如王守仁所料。
此时守仁大军已集结完毕。宸濠精锐都前往安庆,留守南昌的兵力空虚,守仁率兵攻打南昌,宸濠回兵救南昌。最终双方在鄱阳湖决战,王守仁在湖面上向叛军扔了数不清的“免死竹牌”,叛军士兵都争着去湖面捡捞,军心大乱。经过三天的激战,宁王战败被俘,宁王叛乱历时35天后宣告结束。
然而,平叛大功却没有得到武宗的认同。武宗身边的佞幸之臣,平时与宁王交往密切,心态极端复杂。一些佞幸之臣希望王守仁将朱宸濠释放,然后再让已经南巡的武宗亲自“擒获”朱宸濠,以满足武宗的虚荣心。面对这样复杂的情势,王守仁急流勇退。他将朱宸濠交付当时尚属正直的太监张永,然后称病,以避免卷入更多的政治事端中。所以,终武宗一朝,王守