For the second successive race, Lewis Hamilton led team-mate Jenson Button the chequered flag as McLaren secured a 1-2 finish on F1's return to Canada.
In an action packed race where tyre wear played a pivotal role, Hamilton picked up his second victory of the 2010 campaign to move into the championship lead.
Hamilton had qualified on pole and held his lead into the first corner ahead of the Red Bull of Sebastian Vettel – which had inherited a slot on the front row of the grid thanks to a five place penalty for a gearbox change prior to the start.
While the front-runners made it through the opening corners unscathed, there were incidents behind with Vitaly Petrov and Pedro de la Rosa tangling and Felipe Massa colliding with Tonio Liuzzi's Force India. Petrov was the only one of the four not forced to pit at the end of the opening lap as a result.
McLaren had started the race on the softer tyres and it didn't take long for the cars behind Hamilton on the harder rubber to start putting him under pressure, with the Briton forced to defend to keep Vettel and Fernando Alonso behind.
Team-mate Button was also under pressure from Webber for fourth, with the Australian getting ahead on lap five just before Button dived into the pits to make his first stop.
Under pressure from the cars behind, Hamilton pitted on lap seven along with Alonso, with the pair becoming embroiled in a race off pit road that Alonso won to get ahead.
That left Vettel and Webber out front until they pitted on consecutive laps, which handed the lead of the race back to Hamilton – who had dived down the inside of Alonso at the hairpin as the pair fought to get past the Toro Rosso of Sebastien Buemi prior to the Swiss driver ducking in to make his stop.
Hamilton held on ahead of Alonso until he pitted for a second set of hard tyres, with the Spaniard, Button and Vettel following suit. Webber however elected to stay out on his tyres as long as possible before swapping to the softs for his final stint.