Lewis Hamilton took his fourth victory of the season in Canada, leading team mate Nico Rosberg in a Mercedes one-two.
Rosberg kept in close touch with Hamilton in the second half of the race after their single pit stops, but never got close enough to make a bid for the lead.
Valtteri Bottas put Williams on the podium for the first time this year after Kimi Raikkonen, who held the place in the opening stages, spun following his pit stop. Raikkonen crossed the line in fourth place ahead of the other Ferrari of Sebastian Vettel, which had started 18th.
Felipe Massa also mounted a recovery effort having started 15th and moved up to sixth by the flag. The last car he passed was the Lotus of Pastor Maldonado, which finished seventh.
Despite a spin while being passed by Vettel, Nico Hulkenberg finished eighth for Force India. Daniil Kvyat and Romain Grosjean completed the points scorers, the latter doing so despite a five second time penalty for hitting Will Stevens while lapping him.
The other Manor of Roberto Merhi was one of three cars which failed to make the finish. The other were the two McLaren drivers, who suffered with a lack of straight-line speed and poor fuel consumption.
2015 Canadian Grand Prix
- Fifth-placed Vettel wins Driver of the Weekend
- Even Montreal can’t lift F1 from its 2015 torpor
- Sponsor watch: Spain, Monaco and Canada 2015
- 2015 Canadian Grand Prix team radio transcript
- Top ten pictures from the 2015 Canadian Grand Prix