Robert Kubica took the lead in the drivers' championship after scoring his and BMW Sauber's first Formula One victory, with teammate Nick Heidfeld finishing second in an astonishing Canadian Grand Prix.
The win was a remarkable way for Kubica to mark his return to Montreal, 12 months after his ferocious accident at the track.
David Coulthard claimed his first points of the season in fine style by taking third for Red Bull, ahead of Toyota's Timo Glock and Felipe Massa's Ferrari.
Lewis Hamilton and Kimi Raikkonen made a bizarre exit from the race when the McLaren crashed into the back of the Ferrari in the pitlane during a safety car period.
Prior to that incident, Hamilton had looked set for a dominant victory. He calmly pulled away from Kubica and Raikkonen in the early laps, and led by seven seconds when the caution period was called on lap 17 to retrieve Adrian Sutil's Force India, which had parked in a difficult position near Turn 3.
The leaders all poured into the pits, with Hamilton falling behind both Raikkonen and Kubica. The Ferrari and BMW then dutifully halted at the pit exit because the red light was on while the safety car train came past, but Hamilton appeared not to notice the light and ploughed into the back of the Ferrari.
Williams' Nico Rosberg - who had been running a strong fourth after passing Fernando Alonso at the first corner - was also caught off guard and struck the back of Hamilton's McLaren. Unlike Raikkonen and Hamilton, though, Rosberg was able to continue after a second stop for repairs.
The leading eight cars had all stopped during the safety car, meaning that Heidfeld moved up to first position, ahead of Rubens Barrichello (Honda), Kazuki Nakajima (Williams), the two Red Bulls and the two Toyotas.
Kubica was the best of those who had already pitted, but was down in 10th place.
When racing resumed, Heidfeld made the most of this golden opportunity and charged off into the distance, lapping two seconds per lap faster than the heavier Honda of Barrichello.
With Kubica losing time in the traffic, Heidfeld was able to pull sufficiently far ahead that he emerged in front of his teammate when he stopped eight laps later, although with Heidfeld fuelled to the end of the race, Kubica was able to swiftly overtake on the next lap.
Long first stints then meant that Barrichello, Coulthard, Jarno Trulli and Timo Glock all had chances to lead the race, with Kubica moving ever closer to the front as those ahead stopped.
By the time Glock became the last to pit on lap 42, Kubica had a 10-second lead over Heidfeld, with Alonso third and putting the BMW under huge pressure.
The Renault was on the same strategy as Kubica and had another stop to make, only to spin into the wall at Turn 7 on lap 45. The former champion blamed the crumbling track surface at the chicane exit.
Once in clear air, Kubica was able to sprint away from Heidfeld and open up a large enough advantage to guarantee that he would lead BMW Sauber's historic one-two.
He made his final stop on lap 49, and rejoined six seconds clear of Heidfeld, a margin that he continued to extend in the last stint before crossing the line to clinch a remarkable victory.
Coulthard's late pitstop allowed him to rejoin ahead of most of the cars that had stopped under the safety car, meaning that he appeared in third place by the time the stops were all complete.
Barrichello was set for fourth place, only for a trip across the grass in the closing stages to let Toyota duo Trulli and Glock sweep past him and into the top five.
Massa then passed Barrichello a few laps later. The Ferrari driver had fallen to the back of the field when a miscommunication meant he made an additional stop during the first safety car period, and then lost more ground when he had to make a third and final stop with 18 laps to go.
The Brazilian charged to the end, making it past Trulli for fifth with two laps to go when the Italian had to back off as his teammate Glock went wide at the first corner. Massa then pushed Glock to the end, but had to settle for fifth.
Kovalainen was left in a similar situation after having to wait behind Hamilton when both stopped under the safety car.
He was running ahead of Massa until sliding wide on the fragile track surface at the hairpin while racing with Barrichello on lap 50, which allowed the Ferrari to cruise past both as they scrabbled for grip.
Kovalainen then spent the final laps embroiled in a huge battle with Barrichello and Toro Rosso's Sebastian Vettel for the final point-scoring positions, but was unable to pass the young German and finished just outside the points in ninth.
Rosberg completed the top ten after his early delay, ahead of Button, Webber and Toro Rosso's Sebastien Bourdais.
Nakajima retired after breaking his front wing on the rear of Button's Honda. The dislodged wing then wedged under the front of the Williams and sent it into the wall in the pit entrance.
Nelson Piquet retired his Renault after spinning while chasing teammate Alonso, while Giancarlo Fisichella became the final retirement when he crashed his Force India on the way out of Turn 4.
PROVISIONAL RACE RESULTS The Canadian Grand Prix Circuit Gilles Villeneuve, Montreal, Canada; 70 laps; 305.270km; Weather: Sunny. Classified: Pos Driver Team Time 1. Kubica BMW Sauber (B) 1h36:24.447 2. Heidfeld BMW Sauber (B) + 16.495 3. Coulthard Red Bull-Renault (B) + 23.352 4. Glock Toyota (B) + 42.627 5. Massa Ferrari (B) + 43.934 6. Trulli Toyota (B) + 47.775 7. Barrichello Honda (B) + 53.597 8. Vettel Toro Rosso-Ferrari (B) + 54.120 9. Kovalainen McLaren-Mercedes (B) + 54.433 10. Rosberg Williams-Toyota (B) + 54.749 11. Button Honda (B) + 1:07.540 12. Webber Red Bull-Renault (B) + 1:11.299 13. Bourdais Toro Rosso-Ferrari (B) + 1 lap Fastest lap: Raikkonen, 1:17.387 Not classified/retirements: Driver Team On lap Fisichella Force India-Ferrari (B) 54 Nakajima Williams-Toyota (B) 49 Alonso Renault (B) 47 Piquet Renault (B) 42 Raikkonen Ferrari (B) 20 Hamilton McLaren-Mercedes (B) 20 Sutil Force India-Ferrari (B) 14 World Championship standings, round 7: Drivers: Constructors: 1. Kubica 42 1. Ferrari 73 2. Hamilton 38 2. BMW Sauber 70 3. Massa 38 3. McLaren-Mercedes 53 4. Raikkonen 35 4. Red Bull-Renault 21 5. Heidfeld 28 5. Toyota 17 6. Kovalainen 15 6. Williams-Toyota 15 7. Webber 15 7. Renault 9 8. Trulli 12 8. Honda 8 9. Alonso 9 9. Toro Rosso-Ferrari 7 10. Rosberg 8 11. Nakajima 7 12. Coulthard 6 13. Vettel 5 14. Barrichello 5 15. Glock 5 16. Button 3 17. Bourdais 2 All timing unofficial