Mercedes' Vandoorne overtook pole-sitter Mitch Evans at half distance and drove on to the chequered flag with a measured performance.
In doing so, Vandoorne denied Jaguar's Evans a third successive victory this season, with the latter dictating the pace at the front over the first third of the race.
Evans came under pressure from Pascal Wehrlein who got by a few laps later using attack mode, as Vandoorne and Jean-Eric Vergne, both also using attack mode, vaulted past as well.
Vergne made his way into the lead but fell back down the order again as Wehrlein assumed the top spot.
Vandoorne led the race back to green on Lap 21 and was able to build a gap to Evans to secure the win and championship lead at the chequered flag.
“It is an amazing feeling, I mean Monaco is always a special race to win as a driver,” said the Belgian.
“Last year we had a tough time here, this year we managed to turn it around. The target was to qualify at the front and then I knew we would be in the mix, and that is exactly how the race panned out.
“We were flying today, massive well done to the team for giving me a strong car. It has not been an easy start to the season, but it shows the consistency we have. I am extremely happy.
“I feel like I have been fighting at the front all season already, I have had a few pole positions and have not quite been able to convert them into victories. This weekend I decided not to qualify on pole and get the victory instead.”
Vergne completed the podium, holding off Robin Frijns while Antonio Felix da Costa rounded out the top five.
The next event is in Berlin from May 14-15.