Red Bull's Max Verstappen held off a late challenge from Ferrari's Carlos Sainz to win the Canadian Grand Prix.
The two started the final 15 laps nose to tail after a late safety car but, despite heavy pressure from Sainz, Verstappen held on with older tyres.
Lewis Hamilton and George Russell took third and fourth for Mercedes as Ferrari's Charles Leclerc recovered to fifth from the back of the grid.
Verstappen extended his championship lead over Leclerc to 49 points.
Red Bull's Sergio Perez remains in second place despite retiring from the race with an engine problem but is only three points ahead of Leclerc.
Fernando Alonso, who starred in wet qualifying to start on the front row for the first time in 10 years, suffered from a questionable strategy from Alpine and some technical issues to finish seventh, behind team-mate Esteban Ocon.
Charging Sainz just comes up short
Verstappen and Sainz played a cat-and-mouse game throughout a race punctuated by two virtual safety cars in addition to the final full safety car.
Red Bull pitted Verstappen under the first VSC on lap nine, caused when Perez pulled off, while Sainz stayed out, before the Spaniard stopped under the second 11 laps later, caused by Mick Schumacher's Haas stopping out on track.
That set up a race defined by tyre offsets, with Sainz closing slowly on Verstappen through their second stints before the Dutchman stopped for a second time on lap 43.
Carlos Sainz secured a podium finish for the fifth time in 2022Sainz then benefited from the final safety car, caused by Yuki Tsunoda crashing his Alpha Tauri on his way out of the pits.
The Ferrari driver had a six-lap tyre advantage over Verstappen for the final shootout but he was unable to get close enough to the Red Bull to mount an attack, despite following within a second for the entire final 15 laps.
Verstappen held on for his fifth win in six races, Red Bull's sixth in a row, and his own sixth victory in nine races this season to further consolidate an ever-more convincing championship advantage.
Alonso's strong weekend fades to P7 finish
Alonso had talked after qualifying about challenging Verstappen for the lead on the first lap, but the Red Bull made too strong a start and the veteran Spaniard had to settle into second place.
Sainz soon passed the Alpine, who then seemed to fall foul of mistaken thinking during the two virtual safety cars.
Alonso did not stop under either, while both Mercedes drivers did - Hamilton under the first and Russell under the second.
This leapfrogged both ahead of Alonso, and the 40-year-old also lost out to team-mate Ocon as the Frenchman stopped with Russell under the second VSC.
Fernando Alonso has fnished seventh in his past three racesThe decisions left Alonso in no-man's land and he had to stop a few laps later under racing conditions, dropping behind Leclerc as well.
That meant Alonso was running sixth behind Ocon and ahead of Leclerc for the final run to the flag.
Leclerc passed both to take fifth and do a decent job of damage limitation in the championship, although there are questions as to whether Ferrari made strategy errors - which a slow pit stop did not help - as simulations suggested he should have been able to beat the Mercedes as well.
Although Alonso had stronger pace than Ocon, he was unable to pass.
Alonso was battling with an engine problem and asked the team whether they would swap positions, claiming he had been "100 times faster" than Ocon during the weekend.
He did indeed maintain his significant pace advantage throughout but the team chose not to accede to his request and Ocon finished ahead of Alonso, with Valtteri Bottas and Zhou Guanyu taking eighth and ninth for Alfa Romeo, and Lance Stroll taking the final point in 10th.
What's next?
A two-week break before the British Grand Prix at Silverstone, where Ferrari really need to halt Red Bull's momentum and the track should suit Mercedes better.
Lewis Hamilton (left) made the podium for the second time in 2022Max Verstappen has won his last two races