MONTREAL -- Max Verstappen held off a spirited late challenge from Carlos Sainz to win the Canadian Grand Prix and extend his championship lead to 46 points.
Verstappen crossed the line 0.9 seconds ahead of the Ferrari driver, who had been right behind him for the final 15 laps after a late Safety Car restart set up a grandstand finish.
Sainz was unable to get close enough to overtake as Verstappen drove faultlessly to record his sixth win of the season.
With teammate Sergio Perez failing to finish and Ferrari's Charles Leclerc only scoring 10 points in fifth place, Verstappen is looking like a comfortable favourite to successfully defend his championship crown.
Lewis Hamilton ended a rotten recent run of recent form by claiming third position -- his first trip to the podium since the opening race of the season in Australia.
"Honestly I'm ecstatic," Hamilton said after the race. "I didn't expect this coming into the weekend."
Mercedes teammate George Russell finished behind in fourth as the reigning world champions recorded another impressive haul of points as the third best team.
Leclerc, who started 19th after an engine change led to a grid penalty, fought back to a superb fifth position.
Alpine's Esteban Ocon finished sixth, with the team telling an angry Fernando Alonso not to overtake him in the final laps.
Alonso had started second but was shuffled back through the order through the race and told the team he had been "100 times faster" than his teammate all weekend.
Alfa Romeo recorded a strong double points finish, with Valtteri Bottas eighth ahead of rookie teammate Guanyu Zhou, who turned in the best performance of is young F1 career.
Canada's own Lance Stroll claimed the final point in 10th thanks to a massive long stint on the tyre he started the race on. His reward for the long stint was a well timed Safety Car.
What had looked like a very promising race for Haas failed to deliver a single point.
Kevin Magnussen and Mick Schumacher started fifth and sixth but the team's race unravelled in dramatic fashion early on.
Magnussen went on the offensive at the start and made contact with Hamilton as they battled for position, which left a small part of the Haas' wing hanging off the car.
A few positions back, Alpine driver Esteban Ocon told the team he felt the piece could fall off the car and hit him in the face, and a few laps later the FIA waved a black flag with an orange circle at Magnussen, denoting a driver has to pit for safety reasons.
Magnussen pitted for a new wing but was at the back of the field for the rest of the race. Several laps later, Schumacher's car slowed and he retired the car, ruining what had looked like a great chance for his first Formula One point.
McLaren also provided a bizarre moment late on, when Daniel Ricciardo and Lando Norris were called into the pits during a Virtual Safety Car moment. McLaren did not appear to have the tyres ready for either driver and Ricciardo's stop was delayed, before Norris sat idle for nearly 30 seconds waiting for the team to get his tyres ready.
The next race is the British Grand Prix at Silverstone on July 3.