Highlights - Canadian Grand Prix
By Andrew Benson
BBC Sport in Montreal
Lewis Hamilton led Jenson Button to a McLaren one-two in a thrilling Canadian Grand Prix after a race-long five-car battle in Montreal.
Hamilton fought with Ferrari's Fernando Alonso throughout, but the Spaniard lost out to Button with 14 laps to go.
Red Bull's Sebastian Vettel and Mark Webber were also contenders for victory and finished fourth and fifth.
The result puts Hamilton in the championship lead, three points clear of Button, with Webber and Alonso next.
"It's been a tremendous weekend, fantastic," said Hamilton. "Things have just gone so well. Tremendous support from the fans and the team did an exceptional job. One of the toughest races of the year. These guys (Button and Alonso) did a fantastic job.
Canadian GP - Top three drivers
"Traffic was the opportunity for all of us today to get past the guy in front and I capitalised on that."
The race victory turned on tyre strategy, and a couple of key incidents between Hamilton and Alonso.
Hamilton put himself in a position to win when he passed Alonso on lap 15 while the two were harrying Sebastien Buemi for the lead.
The Swiss Toro Rosso driver had found himself at the head of the field as the differing tyre choices of the main contenders played out in the opening laps.
Alonso got caught on the outside of Buemi going into the hairpin and Hamilton was able to slingshot past him on the long straight down to the final chicane, where Buemi pitted from in front of them, promoting Hamilton into the lead.
But Hamilton could not shake off Alonso and when the McLaren pitted again on lap 26, rejoining in third behind Webber, the Ferrari resumed the lead.
Alonso was due in to the pits on lap 28 for tyres and a fastest lap on lap 27 put him on target to re-pass the McLaren.
But the Ferrari got held up behind a backmarker - Lotus' Jarno Trulli - and Alonso ended up rejoining behind the McLaren.
At this point, Webber was in the lead, but still needing to pit to change to the softer option tyres, which he had not yet used, with Hamilton, Alonso, Button and Vettel behind him all trying to get to the end on their harder prime tyres.
The Australian pulled out a lead of 11.8 seconds by lap 36, but then his tyres began to go off and Hamilton and Alonso, still circulating nose to tail, began to close in again. Button, with Vettel on his tail, was about four seconds further back.
Hamilton and Alonso caught Webber on lap 48 and Hamilton took the lead into Turn One at the start of lap 50.
Webber pitted for his final set of tyres at the end of the lap, dropping to fifth, and Alonso began to drop away from Hamilton and fall into Button's clutches.
Another delay behind Hispania's Karun Chandhok gave Button the chance to take second place into Turn Eight on lap 56.
First corner chaos in Montreal GP
Initially, the two men began to close on Hamilton, but the 2008 world champion put in a couple of quick laps with 10 of the 70 laps to go to deter them from getting any closer.
Alonso was less than a second behind Button for the rest of the race but was unable to pass.
"This was a very difficult type of race because the tyres are so important," said reigning world champion Button. "You couldn't drive flat out on the prime every lap, you still had to look after the tyres.
"It was exciting and great to be up at the front and watching the fight between these two (Hamilton and Alonso) was also fun. It was a great race, with different strategies, and it's made for a hell of a race."
Alonso added: "It was a good day for us, the car was very competitive and I think we had a good opportunity to win .
"We overtook Lewis thanks to a fantastic pit stop but then lost the position with some traffic. We lost another position to Jenson in the last laps with more traffic, so we lost 10 points.
"When Buemi stopped I lost 2.5secs passing another car and I exited the pits 0.5secs behind Lewis, it was a race decided by small details.
"We are still in the championship but we are moving in the right direction and we are back in the fight."
Hamilton and Alonso battle in pits
Hamilton had led the early laps from pole position but his option tyres began to go off after four or five laps and, with Vettel climbing all over the back of him, he pitted on lap seven.
Alonso came in at the same time and a slow pit stop and getaway by Hamilton and McLaren meant the Ferrari was closing fast as Hamilton accelerated away.
The two went side by side down the pit lane and Alonso managed to sneak ahead.
The Red Bulls assumed first and second positions but they, too, started to run into problems with the harder, prime tyre and they had to pit five laps later.
Webber came in first, and fitted the prime tyre, with Vettel following him a lap later and going for the option.
That put Buemi into the lead, with Alonso and Hamilton closing fast.
Buemi drove a strong race to finish eighth behind the Mercedes of Nico Rosberg and Robert Kubica's Renault.
Rosberg's team-mate Michael Schumacher and the Force Indias of Vitantonio Liuzzi and Adrian Sutil were ninth and 10th in the final points positions.
Sutil passed Michael Schumacher for that position at the final corner, depriving the German legend of a point at the end of a poor weekend.
And Felipe Massa was given a 20-second penalty for speeding in the pit lane which dropped him two places in the result to 17th.