Antonelli said he needed to find his focus again but stayed cool when the race was stopped and briefly seemed set to be abandoned before a restart. All that on a tight, twisty circuit threaded between metal barriers where any slip brings a crash.
Antonelli was on course for victory with 10 laps remaining when the race was red-flagged after parts of the asphalt broke away and two cars crashed in quick succession, one of them Charles Leclerc in third place.
After a long delay, officials said the race would be resumed from a standing start. When that happened, Antonelli took control again to become the youngest F1 winner in Monaco, and was never in real danger of being overtaken.
"Thank you so much guys, the car was a beast today," he told the Mercedes team.
Hamilton was second as a raft of penalties and investigations meant other positions weren't immediately clear. Isack Hadjar was on the podium in third for Red Bull after battling engine problems but was one of those under investigation.