Jenson Button stretched his incredible run to a fourth win in five races by beating his Brawn team-mate Rubens Barrichello to victory in the Spanish Grand Prix.
Barrichello had vaulted into the lead at the start, but Button switched to a two-stop plan at the first stops and maintained a strong enough pace on heavy fuel to emerge ahead when the strategies had finished playing out.
Mark Webber completed the podium for Red Bull, as his front row starting team-mate Sebastian Vettel's race was compromised by getting stuck behind Felipe Massa's Ferrari off the line.
While all eyes were on Massa's KERS-shod car at the start, it was actually Barrichello who made the best getaway, sweeping around the outside of Button into Turn 1 as Massa squeezed past Vettel to take third.
Further back, Jarno Trulli jinked to avoid Nico Rosberg in the first complex and ended up running wide into the gravel and spinning back across the circuit. The Toyota speared into Adrian Sutil's Force India, with the two Toro Rossos violently tangling in the background as Sebastien Buemi slowed in avoidance and was collected by team-mate Sebastien Bourdais.
This led to a four-lap safety car period, after which Barrichello and Button pulled away from Massa, Vettel and Webber in unison through the opening stint.
Although Button was the lighter car this stage, at the stops he took on a very large fuel load, while Barrichello stuck to a three-stop plan.
That meant the Brazilian rejoined with a clear lead - but now had to mount a charge to pull out enough of an advantage over his team-mate.
Barrichello proceeded to lap 0.7-1.1s quicker than Button, but the 12-lap run to his second stop was not sufficient, and he rejoined 8s behind.
There was another chance to try and strike back during the final pit sequence, when Button would be first to go onto the slower hard compound tyres. However Button had managed to pull 12s clear of Barrichello, who in any case stopped only two laps later.
Massa and Vettel pitted in unison at both their stops, and on each occasion Ferrari managed to stay ahead of the Red Bull. Having run close behind Button for most of the race, they lost touch with the Brawns - and got jumped by the late-stopping Webber - thanks to making relatively early final stops and then having to spend a long time on the hard tyres.
The Brawns and Webber were able to lap 2s quicker as they continued on softs, leaving Massa and Vettel a distant fourth and fifth.
Vettel finally made it ahead of Massa with four laps to go when the Ferrari had to back off and save fuel, too little having been delivered at its final stop. He eventually fell back to sixth.
Fernando Alonso (Renault) did well to take a quiet fifth given his light initial fuel load, passing the slowing Massa on the last lap. He had been involved in a wild battle with Webber at the restart that saw the Renault squeeze past the Red Bull using its KERS advantage, only for Webber to dive back ahead under braking at Turn 1.
BMW's Nick Heidfeld used a long middle stint to beat Williams's Nico Rosberg to seventh. The second BMW of Robert Kubica was only 11th after losing ground on lap one.
Lewis Hamilton (McLaren) dropped to last avoiding the first corner crash, then made good progress in the middle of the race before severe tyre wear saw him fall off the pace. He eventually beat Timo Glock to ninth, the Toyota never recovering from falling into the midfield thanks to a slow start and an earlier first stop than most.
Kimi Raikkonen and Heikki Kovalainen's poor weekends failed to improve in the race. Both gained several places amid the first lap chaos only for their cars to stop with hydraulic and gearbox problems respectively early in the race.
PROVISIONAL RACE RESULTS The Spanish Grand Prix Circuit de Catalunya, Barcelona, Spain; 66 laps; 307.104km; Weather: Sunny. Classified: Pos Driver Team Time 1. Button Brawn GP-Mercedes (B) 1h37:19.202 2. Barrichello Brawn GP-Mercedes (B) + 13.056 3. Webber Red Bull-Renault (B) + 13.924 4. Vettel Red Bull-Renault (B) + 18.941 5. Alonso Renault (B) + 43.166 6. Massa Ferrari (B) + 50.827 7. Heidfeld BMW Sauber (B) + 52.312 8. Rosberg Williams-Toyota (B) + 1:05.211 9. Hamilton McLaren-Mercedes (B) + 1 lap 10. Glock Toyota (B) + 1 lap 11. Kubica BMW Sauber (B) + 1 lap 12. Piquet Renault (B) + 1 lap 13. Nakajima Williams-Toyota (B) + 1 lap 14. Fisichella Force India-Mercedes (B) + 1 lap Fastest lap: Barrichello, 1:22.762 Not classified/retirements: Driver Team On lap Raikkonen Ferrari (B) 18 Kovalainen McLaren-Mercedes (B) 8 Trulli Toyota (B) 1 Buemi Toro Rosso-Ferrari (B) 1 Bourdais Toro Rosso-Ferrari (B) 1 Sutil Force India-Mercedes (B) 1 World Championship standings, round 5:
Drivers: Constructors: 1. Button 41 1. Brawn GP-Mercedes 68 2. Barrichello 27 2. Red Bull-Renault 38.5 3. Vettel 23 3. Toyota 26.5 4. Webber 15.5 4. McLaren-Mercedes 13 5. Trulli 14.5 5. Renault 9 6. Glock 12 6. BMW Sauber 6 7. Alonso 9 7. Ferrari 6 8. Hamilton 9 8. Williams-Toyota 4.5 9. Heidfeld 6 9. Toro Rosso-Ferrari 4 10. Rosberg 4.5 11. Kovalainen 4 12. Massa 3 13. Buemi 3 14. Raikkonen 3 15. Bourdais 1 All timing unofficial