Jenson Button made sensational amends to McLaren, having inadvertently taken team mate Lewis Hamilton out of a chaotic Canadian Grand Prix on the eighth lap on Sunday, by snatching victory from Sebastian Vettel halfway round the final lap.

The disjointed race began behind the safety car due to heavy rain, started to dry, then got much worse as the rain returned and refused to abate.

Things went bad for McLaren by the second corner as Hamilton tapped Mark Webber into a spin and attracted the attention of the stewards yet again. But that was nothing compared to the bad news that lay ahead for McLaren…

Vettel led easily from the Ferraris of Fernando Alonso and Felipe Massa, with the McLarens chasing the Mercedes of Nico Rosberg and Michael Schumacher. Hamilton passed Button but dropped behind him on the sixth lap as an overtaking move on Schumacher failed to come off at the hairpin. Going across the start/finish line at the end of lap seven Hamilton pulled out to pass Button, but as the latter moved to the left they made contact and Hamilton hit the pit wall. His car sustained a puncture and after trying to limp home he was instructed by his crew to pull off. Out came the safety car again.

Afterwards Button said that he simply couldn’t see anything in his mirrors, because of the spray.

Then came more bad news for McLaren, as Button got a drive-through penalty for going too fast behind the original safety car.

He served that, then dived in for intermediate Pirellis and was for a while the fastest man on the track. Alonso did likewise, but they were just moving up the order when the rain came back. Before long the race was red flagged as conditions became impossible.

At the end of lap 24 the order was: Vettel, the amazing Kamui Kobayashi who had yet to pit his Sauber, Massa, who had stopped, the Renaults of Nick Heidfeld and Vitaly Petrov, Paul di Resta in the Force India, Webber and Alonso, Pedro de la Rosa and Button.

That was how they restarted two hours and five minutes later when the rain finally eased.

Vettel soon pulled away again as Kobayashi fought a valiant rear-guard action against Massa and a suddenly revitalised Schumacher. The German moved up to second place on the 51st lap as Kobayashi slid momentarily off the track and held Massa wide as he recovered. The Brazilian sustained front-wing damage which dropped him back after another pit stop, but now the men to watch were Webber and, incredibly, Button, who on intermediate Pirellis and then slicks had started to charge back from last place after having to make an unscheduled stop after a collision on the 37th lap with Alonso. The Spaniard spun and the safety car came out yet again as the Ferrari was beached on a chicane kerb. The stewards investigated the incident after the race and deemed no action necessary.

Just as things were brewing nicely another accident, this time when Nick Heidfeld tagged the back of Kobayashi and then had the front wing of his Renault fold back under the car, resulted in a fifth safety car deployment on the 56th lap.

The race resumed for its final sector on the 61st lap, now with DRS enabled by the FIA. Schumacher came under intense pressure from Webber and Button. The Englishman soon disposed of them both and set off after Vettel, slashing down a 3.1s advantage until the German made a crucial mistake on the final lap as he slid wide on a wet patch and surrendered the lead. Button’s redemption was complete.

Behind them, Webber passed Schumacher to take third despite a baulky downshift and intermittent KERS performance, while Petrov and a recovering Massa overtook a fading Kobayashi. Jaime Alguersuari and Sebastien Buemi made it a good day for Toro Rosso by taking eighth and 10th places, sandwiching Rubens Barrichello’s Williams. Rosberg had been well in the hunt here, but slipped back in the closing stages.

Pedro de la Rosa’s return to F1 racing earned him 12th, while Tonio Luzzi beat the Virgins fair and square as HRT won the ‘new teams’ section after a super drive. He was followed by the Virgins of Jerome D’Ambrosio and Timo Glock, and team mate Narain Karthikeyan who was penalised from 14th to 17th for cutting a chicane. Jarno Trulli was Team Lotus’s sole survivor in 16th after Heikki Kovalainen’s T127 broke a driveshaft.

Force India had a bad day too; Paul di Resta was up in sixth place early on, survived some adventures before serving a drive-through for contact with Rosberg, and then crashed near the end and was classified 18th. Adrian Sutil got a similar penalty for overtaking under the safety car, and was also delayed by a puncture after also hitting Rosberg.

Besides Hamilton, Kovalainen, Alonso and Heidfeld, Pastor Maldonado failed to finish.

A remarkable race sees Vettel extend his leading world championship points tally to 161 as Hamilton drops to fourth on 85, behind Button on 101 and Webber on 94. Alonso remains fifth on 69. In the constructors’ stakes, Red Bull have 255 points to McLaren’s 186 and Ferrari’s 101.