The Briton's fourth victory in seven races this season, and fourth career win in Canada, denied Rosberg a third triumph in a row and provided the perfect response to losing out in the showcase race two weeks ago.

There he had been leading comfortably from pole only to lose out after a needless late pitstop when the safety car was deployed. Rosberg was never close enough to attack, finishing 2.2 seconds behind after having to manage his brakes while Hamilton also had to coast at times to save fuel.

Finland's Valtteri Bottas was third for Williams, a massive 40.6 seconds behind Hamilton, to become the first driver from outside Mercedes or Ferrari to appear on the podium this year.

On his way to victory, Hamilton also replaced 1992 champion Nigel Mansell as the British driver to lead most laps in Formula One history. Bottas moved up one place from where he started, beating his fellow-Finn Kimi Raikkonen after the Ferrari driver spun following a pitstop, and looked forward to more podium appearances.

"I think we really needed this result," he said. "Like last year we saw that it really boosts confidence. We know again now that we are a top team and that we can fight for podiums."

Raikkonen finished fourth, ahead of team mate Sebastian Vettel who fought his way through the field from 18th at the start. Bottas's Brazilian team mate Felipe Massa finished sixth after starting 15th, and provided some of the more memorable ovartakes.

Venezuelan Pastor Maldonado scored his first points of the season for Lotus in seventh place and Germany's Nico Hulkenberg limbered up for his Le Mans 24 Hours debut next weekend with eighth place for Force India.

Russian Daniil Kvyat was ninth for Red Bull and Frenchman Romain Grosjean took the final point for Lotus after a late coming together with Manor Marussia's Will Stevens. Neither of the McLarens finished the race, with Spain's double world champion Fernando Alonso expressing his frustration over the radio at being told save fuel.

Latest News from Sports News Desk