Lewis Hamilton controlled proceedings in Canada as he beat Mercedes team-mate Nico Rosberg to victory at the Circuit Gilles Villeneuve.
Hamilton led away from pole position and was never headed as Mercedes spent much of the race ensuring both cars made it to the finish.
Valtteri Bottas claimed his and Williams' first podium of the season, albeit 40 seconds behind winner Hamilton.
Hamilton retained his lead at a calm start as he fended off Rosberg before opening up a gap of over a second within the first two laps, thus escaping DRS range.
Hamilton gradually increased his lead across the opening stint compared to Rosberg, who in turn held a gap of several seconds back to Kimi Räikkönen.
Ferrari was first to react on lap 27 to service the Finn, but he spun at the hairpin on his out lap, costing him a position to Bottas.
That duly took the pressure off of Mercedes, which stopped Hamilton on lap 29 and Rosberg next time around, with the pair emerging separated by two seconds.
A lock-up from Hamilton, allied to Rosberg using DRS from a backmarker, enabled the gap to be reduced to a second, before the Briton once more moved gradually clear, only to be told to save fuel while Rosberg preserved his brakes.
Lap times ebbed and flowed between the Mercedes drivers across the remainder of the race before Hamilton pulled clear to win by 2.2 seconds.
Bottas cruised to third after Raikkonen's error while Sebastian Vettel put in a charging drive to go from 18th to fifth, with Felipe Massa also making strong progress from a lowly grid slot to take sixth.
Pastor Maldonado was seventh for Lotus as he ended his barren run, while Nico Hulkenberg took eighth via a spin while battling Vettel.
Daniil Kvyat was ninth as Red Bull struggled while Romain Grosjean dropped to the foot of the top 10 after he required an extra stop due to making contact as he lapped Will Stevens. Grosjean was handed a five second time penalty for the incident, though this did not affect his position.
Sergio Perez was 11th for Force India, ahead of Carlos Sainz Jr., Daniel Ricciardo and Marcus Ericsson.
Max Verstappen, Felipe Nasr and Stevens completed the finishers.
Hamilton's fifth victory of 2015 means he holds a 17 point advantage over Rosberg in the championship.
|8||Nico Hulkenberg||Force India||+1 lap|
|9||Daniil Kvyat||Red Bull||+1 lap|
|10||Romain Grosjean||Lotus||+1 lap|
|11||Sergio Perez||Force India||+1 lap|
|12||Carlos Sainz||Toro Rosso||+1 lap|
|13||Daniel Ricciardo||Red Bull||+1 lap|
|14||Marcus Ericsson||Sauber||+1 lap|
|15||Max Verstappen||Toro Rosso||+1 lap|
|16||Felipe Nasr||Sauber||+2 laps|
|17||Will Stevens||Marussia||+4 laps|