The Briton led from start to finish to triumph for the second time in 2012 and close the gap on championship leader Fernando Alonso to 63 points with eight races to go.
Alonso failed to finish for the first time this season after being involved in a first corner crash where he was the innocent victim.
Romain Grosjean's Lotus moved across into the path of Lewis Hamilton's McLaren on the run to the first corner, with the latter losing control as a consequence and crashing into the back of the Lotus.
The contact took them into Alonso's Ferrari, with the trio out on the spot, while the Saubers of Kamui Kobayshi and Sergio Perez both suffered damage.
That proved to be the only significant drama of the afternoon as Button dominated the race and was never headed.
Good strategy from Sebastian Vettel saw the world champion finish second, and he cut Alonso's lead in the standings to 24 points.
Kimi Raikkonen was third in his Lotus with Nico Hulkenberg a surprise fourth in his Force India.