Lewis Hamilton's Canadian Grand Prix history is simple: win or crash.
A year ago, Hamilton was disconsolate after crashing out of the race having hit his teammate. Yesterday, he chose to win.
The race came down to tyre strategy, with slow qualifiers on one-stoppers prevailing over faster cars on two stops.
Mark Webber had his hands full right away after being slightly baulked by a slow-starting Alonso and with Nico Rosberg darting around behind him, the Australian had to fight hard through the first half of the lap.
Having been fought off by Webber, Rosberg was quickly attacked by Felipe Massa who passed him into the final chicane.
Massa threw away his good start on lap 6, spinning at turn 1 and ending up with the Saubers in thirteenth. di Resta's good start looked even better as he slotted in to 6th, also passing Nico Rosberg somewhere in the action.
Button made no inroads from his tenth place and appeared to settle in for a rough afternoon, eventually finishing a distant 16th.
Webber reported a problem with his engine not hooking up out of the corners, affecting his lap time. His teammate Vettel drew ahead of Hamilton until lap 12 when the McLaren driver started eating into his lead as the RB8's tyres started getting a little scrappy.
Massa pitted after his spin left his car with evil oversteer, the Brazilian doing extremely well to keep it on the road.
Up front, Hamilton had taken 1.3 seconds out of Vettel's lead. On lap 16, Hamilton was just about to attack Vettel after catching him at the hairpin when the Red Bull driver pitted for the prime soft tyre.
Hamilton did a single lap further to pit for primes. He had a poor stop but still came out ahead of Vettel. In clear air, Alonso started setting personal bests while back in the pack, Hamilton and Vettel were fighting hard.
The Ferrari driver came in on lap 19. A tense run out of the pit exit saw Alonso come out in front of the McLaren of Hamilton. It wasn't quite enough and despite some canny driving out of the hairpin, Hamilton pulled ahead with DRS assistance.
This left the Lotus of Grosjean in the lead as he kept going faster and faster on his super-soft option tyres. The Saubers were also running long, finding themselves deep in the points.
Hamilton peeled off a set of laps to take a 2.4 second lead from Alonso and Vettel, the idea that they were one-stopping playing on his mind as he regularly asked his pit crew for information.
Webber was behind Perez on the same tyre but was unable to make any meaningful progress on the Mexican until lap 29.
Webber took chunks out of Perez using DRS over a series of laps, but with the difference between the Red Bull's top speed and the Sauber's - who was getting a tow from Raikkonen - he just couldn't pass.
The race appeared to settle into an uneasy truce as two-stoppers back in the pack, such as Webber, waited for the one-stoppers to pit. Nico Rosberg did so on lap 39 from behind Webber in an attempt to clear the traffic of the three cars in front.
Webber himself made a mistake at the back of the circuit through the chicane, ending up with the Lotus of Grosjean right up behind him. Webber took little comfort in the knowledge that Raikkonen finally stopped on lap 41, with Perez soon to follow.
Michael Schumacher ran into yet more trouble on lap 45 as the team informed him that his DRS was still stuck open after an attempt to close it by bashing it with decidedly low-tech fists failed. The car was retired as running with the wing open would have seen him black-flagged.
On lap 47 Hamilton told his team that his rears were going off, setting up the battle for the final phase of the race. He stopped on lap 50 and again had a slow pit stop, this time his team having a drama fitting the right-rear.
Red Bull pitted Webber on lap 53, stopping as late as he dared to try and stay ahead of Rosberg. Webber jumped Raikkonen in the process. Sadly for him, Perez and Rosberg were still in front, leaving him with a huge amount of work to do.
Alonso was still out on his second set of tyres four laps after Hamilton's stop, but Hamilton was screaming around the track whole seconds faster than the Ferrari and Vettel's Red Bull.
Nico Rosberg's exuberant attempt to pass Massa went wrong at the final chicane. The Mercedes driver knew he had to hand back the place, and duly did, but tried to get too clever and found Perez passing him as well.
Soon after, Perez passed the Ferrari which was rapidly running out of tyres.
Rosberg's next attempt on Massa was successful and Massa took to the pits for new rubber.
Webber benefited from Massa's plight and was able to start catching Rosberg and take Kimi Raikkonen with him.
Meanwhile, Lewis Hamilton had reached the gearbox of Sebastian Vettel, with eight laps to go. Hamilton sailed past Vettel who was clever enough to let the McLaren driver go, seemingly concentrating on his own third place. The gap to Alonso was just a second by the end of lap 63.
As Hamilton chased down Alonso, Vettel, surprisingly, pitted, putting Grosjean in third and himself in fifth. Hamilton took Alonso on lap 64 and the prospect of the seventh winner in seven races became a reality.
Grosjean's slightly newer tyres derailed Ferrari's strategy, the Lotus making far better use of the one stop play.
Ferrari were rattled, communicating with the their lead driver in Spanish and Italian to try and wrong-foot their closest, English-speaking rivals. Perez was closing at three seconds per lap.
On lap 68, Perez went past Alonso, bumping him from the podium. Vettel was also far faster than the Spaniard and took the Ferrari at the hairpin without DRS assistance.
Hamilton's win fired him into the championship lead ahead of Ferrari's Alonso and vaults him over the Red Bull pair.
Romain Grosjean finally delivered with a clean, classy race and Sergio Perez scored his second podium of the year, making up for his terrible weekend at Monaco two weeks before.
Williams' awful, crash-strewn weekend finished with Senna in 17th, again completely out-driven by Pastor Maldonado who went from 22nd to 14th.
Daniel Ricciardo had a quiet race, spinning towards the end and finishing 14th, ahead of teammate Vergne.
Mark Webber ended the race seventh, his time behind Perez and Raikkonen costing him dearly. He remains well in touch with the championship lead, just six points behind his teammate.
Speaking after the race, Webber was reasonably happy despite the poor finish.
"I knew it was going to be mixed up today, but not that mixed up. In the first ten laps, we had a small issue with the engine which we had to manage, but then I settled into the pace. We pitted and came out behind the one stoppers. It’s hard to get it right here."
Formula 1 returns in two weeks at the European Grand Prix at Valencia.
1. Hamilton - McLaren-Mercedes
2. Grosjean - Lotus-Renault
3. Perez - Sauber-Ferrari
4. Vettel - Red Bull-Renault
5. Alonso - Ferrari
6. Rosberg - Mercedes
7. Webber - Red Bull-Renault
8. Raikkonen - Lotus-Renault
9. Kobayashi - Sauber-Ferrari
10. Massa - Ferrari
11. Di Resta - Force India-Mercedes
12. Hulkenberg - Force India-Mercedes
13. Maldonado - Williams-Renault
14. Ricciardo - Toro Rosso-Ferrari
15. Vergne - Toro Rosso-Ferrari
16. Button - McLaren-Mercedes
17. Senna - Williams-Renault
18. Kovalainen - Caterham-Renault
19. Petrov - Caterham-Renault
20. Pic - Marussia-Cosworth
DNF: Schumacher, de la Rosa, Karthikeyan, Glock.