Lewis Hamilton slashed title rival Sebastian Vettel's Formula 1 championship lead with a dominant victory in the Canadian Grand Prix in Montreal.
Hamilton led away from pole and remained unchallenged for most of the 70-lap race to cross the line 19.7 seconds clear of Mercedes team-mate Valtteri Bottas.
Red Bull's Daniel Ricciardo completed the podium, with Vettel recovering to fourth place having dropped to last after sustaining damage at the start
That happened when Max Verstappen made a lightning getaway from fifth, going around the outside of Vettel at the start to take second behind Hamilton.
But with Bottas simultaneously attacking Vettel on the inside, the Ferrari found itself squeezed and damaged its front wing on Verstappen's left-rear wheel.
Vettel continued initially but was soon forced to pit when part of the wing broke off, dropping him to 18th and last.
The race had been neutralised on the opening lap, when the safety car was called into action following a collision between Carlos Sainz Jr and Romain Grosjean.
Sainz appeared to move across on Grosjean on the straight after Turn 2, causing contact that pitched the Toro Rosso into a spin approaching Turn 3.
The out-of-control Sainz violently collected an innocent Felipe Massa. Both were out but unhurt, while Grosjean had to pit for a new front wing.
Hamilton held off an attack from Verstappen at the safety car restart but that challenge ended when the Red Bull driver pulled off track at Turn 2 soon afterwards with a mechanical problem, prompting a virtual safety car.
With new second-place man Bottas unable to provide a challenge to his team-mate, Hamilton was able to control the pace at the front and clinch his third win of the season and sixth in Canada.
He moved to within 12 points of championship leader Vettel as Mercedes achieved its first one-two of the season.
While the Mercedes had a serene race on a one-stop strategy, Ferrari made a mid-race switch to a two-stopper for its out-of-position drivers.
Kimi Raikkonen had dropped behind Sergio Perez's Force India when he made a mistake in the early laps.
Vettel made rapid progress through the midfielders and was closing on his team-mate into the second half of the race when their strategies changed.
Raikkonen was first to make an extra stop and initially stayed ahead of Vettel, only to run off-track at the final chicane when his car developed brake problems that left him limping to the finish.
That left Vettel clear to chase down a podium battle in which Ricciardo was hanging on ahead of the Force Indias.
Esteban Ocon was catching Perez after making a later pitstop, prompting Force India to ask them to swap places.
Perez insisted the team let them race and it proved costly as their wheel-to-wheel fight allowed Vettel to get a run and dive down the inside of Ocon into the first corner in a bold move.
While Ocon skittered over the run-off, Vettel pushed on after Perez, running off track briefly at Turns 8 and 9 but then making a pass stick at the final chicane for fourth.
Despite an angry Ocon's best efforts, Perez clung on to fifth.
Raikkonen nursed his Ferrari home in seventh, just ahead of Nico Hulkenberg's Renault.
Lance Stroll scored the first points of his F1 career with ninth in front of his home crowd.
He earned that by battling through the midfield after a relatively early stop.
A late pitstop meant Fernando Alonso ran as high as fourth, despite losing ground taking to the grass to avoid the Sainz/Massa collision on lap one.
Even after being passed by Stroll's more powerful Williams, Alonso stuck with the rookie and was on course to score McLaren-Honda's first point of 2017 only to retire with an engine problem on the penultimate lap.
While Alonso climbed into the grandstand to meet fans, his retirement elevated the recovering Grosjean to the final point - just ahead of Jolyon Palmer and Kevin Magnussen, who lost ground with a penalty for overtaking Stoffel Vandoorne under VSC conditions.
Toro Rosso's Daniil Kvyat had a bizarre race - failing to get away for the formation lap, then being given a drivethrough penalty for regaining his grid slot, a further time penalty as the stewards deemed their first sanction was "incorrect" and then having a chaotic pitstop just after complaining of vibrations. He ultimately retired from last place.
RESULTS - 70 LAPS:
|3||Daniel Ricciardo||Red Bull/Renault||35.297s|
|5||Sergio Perez||Force India/Mercedes||40.476s|
|6||Esteban Ocon||Force India/Mercedes||40.716s|
|9||Lance Stroll||Williams/Mercedes||1 Lap|
|10||Romain Grosjean||Haas/Ferrari||1 Lap|
|11||Jolyon Palmer||Renault||1 Lap|
|12||Kevin Magnussen||Haas/Ferrari||1 Lap|
|13||Marcus Ericsson||Sauber/Ferrari||1 Lap|
|14||Stoffel Vandoorne||McLaren/Honda||1 Lap|
|15||Pascal Wehrlein||Sauber/Ferrari||2 Laps|
|-||Daniil Kvyat||Toro Rosso/Renault||Wheel|
|-||Max Verstappen||Red Bull/Renault||Battery|
|-||Carlos Sainz Jr.||Toro Rosso/Renault||Collision|
|9||Carlos Sainz Jr.||25|