Hamilton dropped to fourth on the opening lap, but recovered with a daring high-speed slalom to take second and then the lead.
He finished 3.1 seconds ahead of Rosberg, who appeared to crack under pressure after 29 of the 53 laps when he made a mistake at the first chicane.
A poor consolation for the German runner-up, it was the first time he had finished on the podium at Monza.
Brazilian Felipe Massa came home third, 25 seconds adrift of Hamilton -- for his first podium finish of the season -- ahead of his Williams team-mate Finn Valtteri Bottas, Australian Daniel Ricciardo and his Red Bull team-mate four-time champion German Sebastian Vettel.
More From This Section
It was Hamilton's sixth win this year, his second at Monza and the 28th of his career -- he needs just three wins to equal Nigel Mansell's British record of Grand Prix successes.
"Well done guys on the deserved one-two, it's a good result for the team," said Rosberg in a team radio message.
"Sorry to the guys on my side of the garage. It's a shame.