Rosberg's triumph ended Hamilton's run of five straight wins and reduced his lead in the championship from 24 points to 17 with one race remaining, the Abu Dhabi Grand Prix on November 23 where double points will be awarded.
The 29-year-old German, who had dominated every practice session and started from his 10th pole of the season, came home 1.457 seconds ahead of the Briton who wasted his only chance to take the lead when he spun off the track on lap 29.
"But otherwise the car was superb and everyone did a great job."
Hamilton's error came when he stayed out for a second 'hammer' lap following a communications misunderstanding with his team.
More From This Section
"It was only a small mistake," he said of the error that cost him seven seconds. "But it cost me the win."
He explained: "I was much quicker up to that point. I went a second quicker on the next lap. I thought I was going to pit on that lap, used all my tyres -- and on the next lap there was nothing left.
The result gave Rosberg his first win and podium finish in Brazil, his first victory in eight races since triumphing on home soil in Germany in July, the fifth of his season and eighth of his career.
"I am very happy with the whole weekend," said Rosberg. "I was able to attack and control the gap to Lewis in the race. It all worked out so that is great and the support has been excellent.