Championship leader Rosberg, who had been in front with Hamilton right behind, nursed his damaged car over the line for fourth place with his overall advantage cut to 11 points after nine of 21 rounds.
Hamilton made his move on Rosberg at turn two, with the pair colliding and Rosberg's front wing was broken in the impact.
"I was on the outside, it wasn't me that had the crash," the Briton said.
Dutch teenager Max Verstappen finished second for Red Bull with Ferrari's Kimi Raikkonen third after team mate Sebastian Vettel crashed out on his 29th birthday.
Hamilton's victory was the 250th in Formula One by a British driver since the championship started in 1950.
Images: AP, Reuters