Verstappen, who started on the front row alongside Mercedes pole sitter George Russell, stayed clear of trouble on a day of constantly changing conditions, snatching the lead from McLaren's Lando Norris on the final pit stops.
The Dutchman then grimly hung on to claim his sixth victory from nine races this season and the 60th of his Formula One career.
It was another brilliant drive from the 26-year-old who dealt with a track switching back-and-forth from wet to dry, pit stop battles and challenges from McLaren and Mercedes while wrestling with his Red Bull's suspension.
After Ferrari's Carlos Sainz and Williams's Alex Albon came together, bringing out the safety car for a second time, Verstappen pulled away on the restart and finished 3.879 seconds ahead of Norris, while Russell won a nail-biting last-laps duel with team mate Lewis Hamilton to complete the podium.
"Not easy but we did it," said Verstappen over the team radio. "We had to be on top of our calls and I think, as a team, it went really well today.
"I think we pitted at the right time and of course the safety car worked out nicely for us but even after that I think we were managing the gaps quite well.
"I love it, that was a lot of fun. Those kind of races you need them once in a while."
The win will certainly provide a confidence boost at Red Bull which has recently seen challenges to the team's once unquestioned dominance.
In the three races before Canada, Red Bull had managed one win as the battle for the drivers' and constructors' titles tightened.
But the team returns to Europe back in control of both, with Verstappen opening up a 56-point advantage over Ferrari's Charles Leclerc at the top of the drivers' standings while Red Bull moved 49 clear of Ferrari for the constructors' crown.
FIRST PODIUM OF SEASON FOR MERCEDES
Both Ferraris failed to finish on Sunday, with Sainz losing control of his car on the wet track and hitting the barrier while Leclerc retired after struggling with an engine issue.
"I knew I had to score big so the other teams don't catch up a lot," said Verstappen, who accounted for all the Red Bull points after Mexican team mate Sergio Perez retired.
"I do think at the end of the day as long as you keep winning, you score 25 points, even if the others finish P2, P3, you don't really lose too much and can kind of afford these one-offs."
Mercedes head to Barcelona for the next grand prix on June 23 with growing confidence following a stellar qualifying effort that translated into third and fourth-place results.
The podium was the first of the season for both Mercedes and Russell, who was spurred to the finish line by team mate Hamilton, a seven-time winner in Canada.
McLaren, who have now had a driver on the podium in each of the last five races, also leave Canada with a good points haul with Norris second and young Australian Oscar Piastri fifth.
Aston Martin, owned by Canadian billionaire Laurence Stroll, gave the flag-waving home crowd something to cheer with both cars scoring points.
Spanish double world champion Fernando Alonso took sixth place ahead of Lance Stroll, who grew up in Montreal and had his best result at this home race, finishing seventh.
Australian Daniel Ricciardo, who came under attack from former champion Jacques Villeneuve in Montreal over a lack of good results, answered his critics by scoring points for RB with eighth place.
Alpine grabbed the remaining points with Pierre Gasly taking ninth and Esteban Ocon, who was informed by the Renault-owned outfit last week that they would not be renewing his contract next season, 10th.