Championship leader Rosberg, who had been in front with Hamilton in his slipstream, nursed his damaged car over the line for fourth place with his advantage cut to 11 points after nine of 21 rounds.
Dutch teenager Max Verstappen finished second for Red Bull at their home track with Ferrari’s Kimi Raikkonen third after team mate Sebastian Vettel crashed out on his 29th birthday when a rear tyre exploded.
Australian Daniel Ricciardo was fifth for Red Bull with Britain’s Jenson Button sixth for McLaren.
“I am gutted, it’s unbelievable,” said Rosberg, accusing Hamilton of turning in and causing the accident that broke his front wing.
“I was on the outside, it wasn’t me that had the crash,” said the Briton, who now has three wins to Rosberg’s five this season, over the team radio.
The stewards appeared to back that up by opening an investigation into Rosberg’s actions.
The German was summoned to answer charges of causing a collision and failing to stop with a seriously damaged car.
Mercedes boss Toto Wolff described the collision as “brainless”, without singling out either of his drivers for blame.
The team revealed Rosberg had suffered a problem with his brake-by-wire system which went into “passive mode” at the end of the penultimate lap as Hamilton closed in.
The crowd, small in comparison to the previous two years with rows of empty seats in the grandstands, made their disapproval evident with whistles and boos as Hamilton was interviewed on the podium.
“That’s not my problem, it’s their problem,” the surprised Briton, who started on pole, shrugged when asked about the noise.
“I left a lot of room on the inside and I guess he locked up and crashed into me. I think he had a problem with his brakes potentially. I’m here to win. That’s all.”
Hamilton’s victory was the 250th in Formula One by a British driver since the championship started in 1950 and the 46th of his career.
Help our journalists uncover the facts
In times like these InDaily provides valuable, local independent journalism in South Australia. As a news organisation it offers an alternative to The Advertiser, a different voice and a closer look at what is happening in our city and state for free. Any contribution to help fund our work is appreciated. Please click below to donate to InDaily.