On the final lap of a roller-coaster Canadian Grand Prix, Jenson Button managed to deprive Sebastian Vettel of yet another win.

Despite atrocious weather conditions, several safety car phases, a 90-minute interruption to the race and a sequence of accidents, the current championship leader had driven a flawless race but as Button ratcheted up the pressure on the final lap, Vettel made a mistake that cost him the victory.

There was also plenty of excitement in the battle for the third podium spot involving Mark Webber, Michael Schumacher, Felipe Massa, Nick Heidfeld and Kamui Kobayashi.

Heidfeld's pursuit came to a halt on lap 56 when he rode up on the rear of Kobayashi's car and subsequently drove over his own detached front wing. This brought out the safety car for the sixth and final time. Just before this incident, Massa had damaged his own nosecone as he strayed from the dry line while attempting to overtake a lapped car, hit a wet patch on slicks and collided with the barrier. He still managed to complete the race, crossing the line in sixth.

That left Schumacher, Webber and Button to slug it out for second and third. Schumacher seemed to relish the wet conditions as he worked his way up the field. But when he switched to slicks, he was forced onto the defensive. As soon as the stewards gave the all-clear for DRS, the opposition threatened to sail past. Webber's first attempt failed as he cut the chicane and had to give the place back. Webber then misjudged his second run-up, which let Button through to take P3.

Not long after, Button overtook record world champion Schumacher to start chasing down Vettel. Meanwhile, Webber easily went past Schumacher to deprive the Mercedes driver of the remaining podium spot. Vitaly Petrov finished fifth ahead of Massa and Kobayashi.

Also in the points were Jaime Alguersuari, Rubens Barrichello and Sebastien Buemi. The DNFs were Pastor Maldonado, Fernando Alonso, Heikki Kovalainen and Lewis Hamilton. Hamilton had already gone out before the long break after colliding with team-mate Button. The stewards announced their intention to investigate this incident after the race.

Button was also a bit player in Alonso's early departure. The Englishman tried to pass on the inside and caught the Ferrari a glancing blow. The Spaniard went into a terminal spin while the McLaren was able to limp into the pits with a puncture. The stewards said they would be investigating this incident too after the race. So there might yet be a change to the result. Lining up with Button outside the stewards' office will be di Resta, Sutil and Rosberg who were also involved in altercations on the track.