The German’s win, having beaten the Brit in every session over the weekend, ended Hamilton five-race winning streak.
Rosberg also narrowed the championship race to 17 points going into the last event of the season in Abu Dhabi, where double points are on offer.
Australia’s Daniel Ricciardo, third in the title race, was forced to retire on his 40th lap in a disappointing day for the Red Bull driver.
In recording their 11th one-two finish of the season for Mercedes, Rosberg and Hamilton set a Formula One record. Their 30 podium finishes for 2014 is another record.
“It was a great weekend,” said Rosberg. “The whole weekend I’ve been feeling comfortable in the car, I was able to attack and control the gap to Lewis in the race so that worked out great.
“There’s still all to play for. I just need to keep this going now.”
Hamilton was humble in defeat and needs to finish second to assure himself of the championship.
“It was an amazing race, I had a great time,” said Hamilton.
Brazil’s Felipe Massa finished third for Williams in front of his home crowd.
Image via Getty