Lewis Hamilton put behind him the bitterness of Monaco with a fourth Canadian Grand Prix victory to stretch his advantage in the Formula 1 standings over Mercedes team-mate Nico Rosberg.
Reigning world champion Hamilton finished 2.2 seconds clear of Rosberg at the end of 70 relatively-uneventful laps around Montreal's Circuit Gilles Villeneuve to reopen the gap to 17 points over the German.
After cutting off Rosberg at the start from the 44th pole of his F1 career, Hamilton comfortably led for the opening 29 laps, during which time he became Britain's all-time lap leader, passing previous record-holder Nigel Mansell's haul of 2089, before pitting.
Rosberg followed a lap later, and with both men on soft tyres after starting out on the super-soft Pirelli compound, it was the German who managed to get his rubber up to temperature far quicker, closing to within a second at one stage.
With Hamilton managing fuel and Rosberg brakes, it then became a question of who would cope best with their situation, and in the end despite being told to lift and coast at times, it was Hamilton who held on for the win.
Williams's Valtteri Bottas was third, the first time this season a driver outside of Mercedes and Ferrari had visited the podium, with the Finn aided by a spin from compatriot Kimi Raikkonen at the hairpin on lap 28.
Raikkonen had settled into his starting position of third through the opening phase of the race until his first stop after 26 laps, only to lose the back end of his car a lap and a half later. "That's exactly the same as last year," he complained. "The energy store kicked in."
Williams and Bottas took full advantage as he emerged from his stop ahead of Raikkonen, and from there the latter could do no better than fourth.
Remarkably, from 18th on the grid after his problems and penalties, Sebastian Vettel finished fifth and just 4.9s behind his team-mate.
Vettel swiftly made up five places in the opening laps, but then found himself stuck behind Sauber's Marcus Ericsson and Felipe Massa in his Williams and was called in for a surprise early pitstop.
It was a tactical play, but a problem with the left-rear wheel added another five seconds to the stop, ensuring he returned to the track in last place.
Vettel attacked again, taking on another set of softs after 35 laps, and despite a skirmish with Force India's Nico Hulkenberg 10 laps later that led to the latter spinning through the chicane, the four-time champion made it into the top five.
Massa was sixth, followed by Pastor Maldonado in his Lotus, the Venezuelan's best finish since the 2012 Abu Dhabi Grand Prix.
Hulkenberg was eighth, Red Bull's Daniil Kvyat ninth, with Romain Grosjean in his Lotus claiming the final point, despite having five seconds added to his time for cutting up Will Stevens at one point, suffering a puncture, with the Manor sustaining front-wing damage.
Sergio Perez was 11th in his Force India ahead of Carlos Sainz for Toro Rosso. Last year's race winner Daniel Ricciardo was a lowly 13th in his Red Bull.
As for McLaren, Fernando Alonso finally allowed his frustration with his car to come to the surface as after 24 laps he was involved in an exchange with engineer Tom Stallard.
Told to save fuel, a disgruntled Alonso said: "I don't want to! I don't want! Already I have big problems now. Driving with this, looking like an amateur. So I race and then I concentrate on fuel."
Alonso ultimately retired with a loss of power.
Team-mate Jenson Button's tortuous weekend also concluded with a retirement, having made little progress after missing qualifying, starting last and receiving a drive-through - all consequences of his Saturday practice engine problems.
RESULTS - 70 LAPS:
|8||Nico Hulkenberg||Force India/Mercedes||1 Lap|
|9||Daniil Kvyat||Red Bull/Renault||1 Lap|
|10||Romain Grosjean||Lotus/Mercedes||1 Lap|
|11||Sergio Perez||Force India/Mercedes||1 Lap|
|12||Carlos Sainz Jr.||Toro Rosso/Renault||1 Lap|
|13||Daniel Ricciardo||Red Bull/Renault||1 Lap|
|14||Marcus Ericsson||Sauber/Ferrari||1 Lap|
|15||Max Verstappen||Toro Rosso/Renault||1 Lap|
|16||Felipe Nasr||Sauber/Ferrari||2 Laps|
|17||Will Stevens||Marussia/Ferrari||4 Laps|
|13||Carlos Sainz Jr.||9|