The German claimed pole position for the second year in a row yesterday, and he held on to first spot as he headed into the first corner unchallenged.
Further back, on lap eight, world champion Sebastian Vettel was forced to retire because of power unit problems, while the safety car was called on to the track on two separate occasions.
In pursuit of his teammate Rosberg, Hamilton grew increasingly frustrated at the engineers in the Mercedes garage, who he criticised over their decision of when to pit both drivers.
The Brit was able to hold off the Australian, but second spot was not enough to prevent race-winner Rosberg from claiming top spot in the championship, with a four-point margin over Hamilton.
Meanwhile, Marussia claimed their first ever points in F1 thanks to Jules Bianchi, who secured ninth spot despite the fact that he was hit with a five-second punishment.
Monaco Grand Prix result in full
1. Nico Rosberg (Mercedes)
2. Lewis Hamilton (Mercedes)
3. Daniel Ricciardo (Red Bull)
4. Fernando Alonso (Ferrari)
5. Nico Hulkenberg (Force India)
6. Jenson Button (McLaren)
7. Felipe Massa (Williams)
8. Romain Grosjean (Lotus)
9. Jules Bianchi (Marussia)
10. Kevin Magnussen (McLaren)
11. Marcus Ericsson (Caterham)
12. Kimi Raikkonen (Ferrari)
13. Kamui Kobayashi (Caterham)
14. Max Chilton (Marussia)
Retired: Esteban Gutierrez (Sauber), Valtteri Bottas (Williams), Jean-Eric Vergne (Toro Rosso), Adrian Sutil (Sauber), Daniil Kvyat (Toro Rosso), Sebastian Vettel (Red Bull), Sergio Perez (Force India) Pastor Maldonado (Lotus)