Jenson Button claimed his third win in four races as he took Brawn back to the front in the Bahrain Grand Prix.
Delays behind slower cars cost Sebastian Vettel dear and the Chinese GP winner had to settle for second for Red Bull, with pole-sitter Jarno Trulli (Toyota) third and Lewis Hamilton taking the best result of his title defence so far with fourth for McLaren.
A second lap pass on Hamilton proved critical to Button's victory. As the Toyotas led away, Hamilton had used his McLaren's KERS advantage to blast past both Button and Vettel off the line, with the Red Bull and the Brawn swapping places as Vettel tried to fight back against Hamilton.
Trulli lost out to team-mate Timo Glock into the first corner, and was also briefly passed by Hamilton - again thanks to KERS - further around the lap before reclaiming second place.
Button then drafted Hamilton on the pits straight and managed to out-brake the McLaren into Turn 1. This allowed the championship leader to lurk behind the lighter Toyotas throughout the first stint, while Vettel fell ever further behind due to his inability to pass Hamilton's slower McLaren.
Glock had led confidently in the early stages, but fell back into traffic when he pitted on lap 11 and also struggled with the medium tyres in his second stint, ending his chances of victory.
Trulli ran two laps further and then lost time having a spectacular battle with the yet-to-stop Fernando Alonso, all of which helped Button to pull out ahead when he rejoined after his first stop on lap 15.
Vettel ran right through to lap 19 before pitting, and although this vaulted him clear of Hamilton, it was not sufficient to get ahead of Trulli.
The Red Bull emerged from the pits right behind the Toyota, but with Trulli losing a second per lap to new leader Button while using medium tyres in the middle stint - and Vettel unable to get past the Italian - Button's position became ever more secure and he duly resumed his winning habit after the mild disappointment of China.
It was not until the final stops that Vettel managed to pass Trulli, and by that time he was 12s adrift of Button - and in any case Trulli proved faster in the final stint having saved a set of the preferable super-soft tyres for the end. He shadowed Vettel to the flag, before settling for third.
Hamilton dropped away from this contest but still took an encouraging fourth.
Rubens Barrichello came through to fifth in the second Brawn despite his three-stop strategy causing him a great deal of traffic frustration. He just pulled out enough of a margin before his final stop to beat Kimi Raikkonen, who finally opened Ferrari's points account for 2009, and Glock, who probably would have beaten Raikkonen had the Ferrari not activated KERS as they diced after their last pit visits.
Alonso beat Williams's Nico Rosberg to the final point, with Renault's second driver Nelson Piquet showing much better form to complete the top ten, resisting late pressure from Mark Webber as the Red Bull driver tried to recover from his qualifying frustrations.
The first few laps saw some ferocious three- and four-abreast racing in the midfield - and predictably a lot of damage.
All those involved managed to keep going, but Felipe Massa (Ferrari), Kazuki Nakajima (Williams) and both BMWs all needed new front wings, and McLaren's Heikki Kovalainen fell to the back of the field and also had to pit early to replace a flat-spotted tyre.
PROVISIONAL RACE RESULTS
The Bahrain Grand Prix
Bahrain International Circuit, Sakhir, Bahrain;
57 laps; 308.238km;
Pos Driver Team Time
1. Button Brawn GP-Mercedes (B) 1h31:48.182
2. Vettel Red Bull-Renault (B) + 7.187
3. Trulli Toyota (B) + 9.170
4. Hamilton Ferrari (B) + 22.096
5. Barrichello Brawn GP-Mercedes (B) + 37.779
6. Raikkonen McLaren-Mercedes (B) + 42.057
7. Glock Toyota (B) + 42.880
8. Alonso Renault (B) + 52.775
9. Rosberg Williams-Toyota (B) + 58.198
10. Piquet Renault (B) + 1:05.149
11. Webber Red Bull-Renault (B) + 1:07.641
12. Kovalainen Ferrari (B) + 1:17.824
13. Bourdais Toro Rosso-Ferrari (B) + 1:18.805
14. Massa McLaren-Mercedes (B) + 1 lap
15. Fisichella Force India-Mercedes (B) + 1 lap
16. Sutil Force India-Mercedes (B) + 1 lap
17. Buemi Toro Rosso-Ferrari (B) + 1 lap
18. Kubica BMW Sauber (B) + 1 lap
19. Heidfeld BMW Sauber (B) + 1 lap
Fastest lap: Trulli, 1:34.556
Driver Team On lap
Nakajima Williams-Toyota (B) 49