The Red Bull driver benefited from the shock withdrawal of pole-sitter Charles Leclerc ahead of the race, producing an immaculate drive to stay out of trouble and finish ahead of the Ferrari of Carlos Sainz.
McLaren's Lando Norris completed the podium, securing his second third place of the season, with Sergio Perez, Sebastian Vettel and Pierre Gasly all coming home ahead of Hamilton, who trailed in a distant seventh.
The outcome saw Verstappen, thanks to his first Monaco triumph, move four points in front of Hamilton after five rounds of the 23-race championship. He leads the championship for the first time in his career, a further sign that Hamilton could face a major battle to cling to his crown as he chases a record-breaking eighth title.
Just 20 minutes before the race began, Ferrari dropped the bombshell that Leclerc had been ruled out due to a driveshaft problem.
It was a crushing blow for the Monegasque driver, whose pole was secured in dramatic fashion on Saturday when he crashed his Ferrari in the final minute of qualifying, denying his rivals a clear track and the chance to set a faster time. Leclerc feared gearbox trouble but was initially given the all-clear to race, until he was pulled from the line-up.
What it meant was that Verstappen, second on the grid, had the chance to gain the early ascendancy on the tight circuit where he had never previously achieved a podium finish, and he demonstrated his prowess as a front-runner.
Valtteri Bottas was sitting second when the Finn pitted on the 31st lap, and he joined Leclerc in the bad-luck club when Mercedes were unable to remove his front-right wheel. After a desperate minute of waiting, Bottas climbed out of his car, his race over.
Sebastian Vettel managed to get ahead of Pierre Gasly and Hamilton when the three pitted, the Aston Martin going almost wheel to wheel with Gasly's Alpha Tauri as he completed a stunning overcut.
That moment imperilled Hamilton's leadership of the championship, putting him down in seventh place, as Mercedes suffered a miserable couple of minutes.
It proved the last major twist of the race, with Hamilton securing a bonus point for a late fastest lap. Small consolation on a dismal day for Mercedes, as Verstappen and Perez's performance also saw Red Bull go ahead of the Silver Arrows in the constructors' standings.
Taking it to the Max
Sunday marked 28 years to the day since Ayrton Senna won at Monaco for a fifth successive year and sixth time in all. Those consecutive victories all came for McLaren, and the Brazilian was a master of the circuit, with his final win coming by a staggering 52 seconds from second-placed Damon Hill.
Verstappen is young enough and good enough to be a multiple winner, too, and the way he commandeered this race spoke of his growing maturity. Hamilton has often spoken of wanting a title fight, and that is what looks to be on the cards this year.
Alonso off the pace
For the first time in his illustrious career, Fernando Alonso completed the Monaco Grand Prix and finished outside the top 10 places.
Twice a winner at this mythologised circuit, Alonso was simply not a factor on this occasion, trailing in 13th in the Alpine. He has had two podium finishes alongside those wins, plus several retirements, but he has never been quite so anonymous as he was in this outing.