Michael Schumacher has taken his second victory of the season at the Malaysian Grand Prix after a tense battle with Williams driver Juan Pablo Montoya.
Schumacher's Ferrari led from start to finish except during the pit stops, but had to fight hard to hold off Montoya, who finished five seconds behind.
Jenson Button took his first podium finish for BAR, holding off Ferrari's Rubens Barrichello in the final laps.
Jarno Trulli was fifth, ahead of David Coulthard and Fernando Alonso.
The closeness of the lead battle will raise hopes that Formula One could be in for a close season, despite Ferrari's domination of the first race in Australia two weeks ago.
Schumacher was nearly one second quicker than Montoya in qualifying, but the Williams was a match for the Ferrari throughout the race.
The Colombian moved into second place on lap two after a mistake by Barrichello during an early shower of rain and hung on to Schumacher for the rest of the afternoon.
The gap between the two men fluctuated throughout the afternoon as their different makes of tyre went in and out of peak performance.
The closeness of the battle was illustrated by Montoya setting the fastest lap of the race, nearly 0.6secs quicker than Schumacher's quickest.
Schumacher said: "It was really a tough fight and it wasn't guaranteed until the end. It was pressure all the way.
"We were quick in the moments we needed to be - at the beginning of the stints and at the end.
"The beginning of the race was very tough because of the unpredictable conditions. I had to be cautious not to make a mistake but also be careful not to give Juan an opportunity."
The battle was only settled when Montoya rejoined after his third and final pit stop behind Barrichello, who held him up to give Schumacher some breathing space.
Montoya said: "It was a shame to come out behind Rubens. I tried to pass him and he blocked me. It's better to back off and go home with eight points than be out of the race.
"There was no point even trying to pass and then his pace backed off. The lap before he came into the pits he pushed again, so I lost a bit of time. But that's racing."
Kimi Raikkonen's McLaren was in third place behind the two leaders for much of the afternoon, but retired with 15 laps to go with what the team said was a transmission failure.
That secured a deserved third place for Button - the BAR had been competitive all afternoon.
Button fought all the way to secure an excellent third place
The Englishman had to fend off Barrichello in the closing laps, but held on to finish two seconds ahead of the Ferrari.
The Brazilian's race was hampered by his choice to use harder Bridgestone tyres than Schumacher. They did not work well in the rain during the first five laps and he lost ground.
Button lost out in a close fight with Renault's Jarno Trulli in the early laps, but the Italian dropped back after his second pit stop.
The same was true of Trulli's team-mate Fernando Alonso, who was brilliantly up to eighth place after four laps despite starting at the back of the grid.
The Spaniard pressured Coulthard's McLaren hard until the second stop, when he too dropped out of contention.