The Briton led from pole to flag as he dominated the second grand prix of the season, finishing 17 seconds ahead of Rosberg.
That was just incredible after such a difficult weekend and a long winter
Red Bull’s Sebastian Vettel was third ahead of Ferrari’s Fernando Alonso and Force India’s Nico Hulkenberg.
Hamilton, 29, dedicated his victory to the families of the passengers lost in the disappearance of flight MH370
“That was just incredible after such a difficult weekend and a long winter,” said Hamilton.
“I just feel so grateful, particularly after the tragedy three weeks and I would like to dedicate the win to the families.
“Today you are sweating before you even got in the car so you just have try to keep cool and keep your focus.
“But the team were absolutely spot on with all their instructions today so big thanks to them.”
Rosberg, who won the season-opening Australian Grand Prix earlier this month, added: “I got a great start today, it was tough but I took it from there. I was trying to chase Lewis but he was just too quick for me today.”
Red Bull’s Daniel Ricciardo was forced to retire with five laps to go when his car’s right front wing mount failed.
“I am disappointed,” said Ricciardo. “It was looking like we could have a solid points finish and I was starting to mix it up at the front but at the last pit stop there were all the problems so the race ended pretty quickly for me.
“Deep down I am really disappointed but there is a bit in me which is happy because I have come out how I wanted to in the first two races, I want to improve but there are things to be pleased with.”
Rosberg currently tops the drivers’ standings with 43 points, ahead of Hamilton with 25 and Alonso with 24.
1. Lewis Hamilton Britain Mercedes-Mercedes 56 laps 1hr 40m 25.974s
2. Nico Rosberg Germany Mercedes-Mercedes +00m 17.3s
3. Sebastian Vettel Germany Red Bull-Renault +00m 24.5s
4. Fernando Alonso Spain Ferrari-Ferrari +00m 35.9s
5. Nico Hulkenberg Germany Force India-Mercedes +00m 47.1s
6. Jenson Button Britain McLaren-Mercedes +00m 83.6s
7. Felipe Massa Brazil Williams-Mercedes +00m 85.0s
8. Valtteri Bottas Finland Williams-Mercedes +00m 85.5s
9. Kevin Magnussen Denmark McLaren-Mercedes +1 lap
10. Daniil Kvyat Russia Toro Rosso-Renault +1 lap
11. Romain Grosjean France Lotus-Renault +1 lap
12. Kimi Raikkonen Finland Ferrari-Ferrari +1 lap
13. Kamui Kobayashi Japan Caterham-Renault +1 lap
14. Marcus Ericsson Sweden Caterham-Renault +2 laps
15. Max Chilton Briton Marussia-Ferrari +2 laps
Rtd. Daniel Ricciardo Australia Red Bull-Renault 49 laps completed
Rtd. Esteban Gutierrez Mexico Sauber-Ferrari 35 laps completed
Rtd. Adrian Sutil Germany Sauber-Ferrari 32 laps completed
Rtd. Jean-Eric Vergne France Toro Rosso-Renault 18 laps completed
Rtd. Jules Bianchi France Marussia-Ferrari 8 laps completed
Rtd. Pastor Maldonado Venezuela Lotus-Renault 7 laps completed
Dns. Sergio Perez Mexico Force India-Mercedes Did not start
MORE: The latest football news
MORE: The latest tennis news
BIOGRAPHY: Eric Bailly