The victory was Verstappen's sixth of the season, extending his lead in the F1 Drivers' Championship to 56 points.
Red Bull's triple world champion Max Verstappen has completed a hat-trick of Canadian Grand Prix victories in a wet, wild and tricky race at the Circuit Gilles Villeneuve.
Verstappen, who started on the front row alongside Mercedes polesitter George Russell on Sunday, stayed out of trouble on a day of changeable conditions, snatching the lead from McLaren's Lando Norris in the final pit stops.
The Dutchman then held on to claim his sixth victory in nine races this season and the 60th of his Formula One career.
It was another brilliant drive from the 26-year-old, who had to deal with constantly changing weather, pit stop battles and challenges from McLaren and Mercedes as he battled with the suspension of his Red Bull.
After Ferrari's Carlos Sainz and Williams' Alex Albon came together, bringing out the safety car for the second time, Verstappen pulled away on the restart and finished 3.879 seconds ahead of Norris, while Russell won a duel in the closing laps with his teammate Lewis Hamilton to complete the podium.
Verstappen now leads the Formula One (F1) Drivers' Championship with 194 points. Ferrari's Charles Leclerc is next best, with 138 points.