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
[catlist id=12955 numberposts=5]Browse all 2015 Canadian Grand Prix articles