He was chased home by his nemesis from Sepang, Lewis Hamilton, who, significantly, beat team mate Fernando Alonso.
Kimi Raikkonen finished third and Nick Heidfeld took fourth place from Alonso. It means Alonso, Raikkonen and Hamilton are now all tied for the lead of the championship on 22 points, Massa on 17 and Heidfeld 15.
After all the pre-race excitement about the prospect of Felipe Massa and Lewis Hamilton coming to blows at turn one, it was a fairly calm start, for the first corner at least.
Massa got there ahead and tried to slow the McLarens in what looked decidedly like a pre-arranged, choreographed move to help his team mate. It didn’t work – Fernando Alonso passed Kimi Raikkonen at turn three.
There was a lot of action at turn three as both Jenson Button and Scott Speed were taken out by drivers behind them. Speed’s assailant, Adrian Sutil, dived into the pits for a new nose cone as the safety car came out.
This played perfectly into the hands of Vitantonio Liuzzi, who had started on the unfavourable harder rubber and seized the opportunity to dart into the pits and rid himself of them. Unfortunately, he overtook Ralf Schumacher on the way and was summoned back for a drive-through penalty.
The safety car came in after two laps but apparently no-one had told Raikkonen, who fell back from the top three as they came onto the start line. Hamilton sized up Massa again but simply couldn’t get alongside the Ferrari.
Behind the leaders Heikki Kovalainen picked up three places at the start to take ninth as Nico Rosberg dropped from ninth to twelfth.
But the best start of all came from David Coulthard who vaulted six places from 21st to 15th – and he wasn’t finished. He dispensed with Takuma Sato after the restart and then took his team mate Anthony Davidson for 13th.
Ahead, Jarno Trulli was defending tenth from the Williamses of Alexander Wurz and Nico Rosberg. Wurz made a couple of attempts at passing, one of which ended in Rosberg running off the track to avoid his team mate. Coulthard motored past and up into 12th.
Throughout the first stint Hamilton and Massa exchanged fastest laps, but when Hamiton ducked into the pits on lap 19 it revealed he’d been running with a lighter fuel load: Two laps’ less than Massa, in fact.
Alonso had fallen ten seconds behind the leaders with Raikkonen bottled up behind him, and he stopped earlier than the Ferrari, allowing the Finn to move up into third place. Nick Heidfeld’s BMW was in close attendance, though team mate Robert Kubica had fallen over 14s behind.
So much so, that when Massa came out of the pits, he was right behind the junior BMW driver. Massa would have been relieved when Kubica pitted on lap 24.
Anthony Davidson was among the drivers who waited longest to make the first stop, hanging on until lap 29 and running as high as sixth. But his stop dropped him to 14th.
Up ahead, Coulthard was passing car after car. Trulli fell to his approach on lap 24 and four laps later Mark Webber made way as his fuel flap had jammed open – a repeat of the problem that had spoiled his race in Melbourne.
Coulthard kept on pressing and depressed Renault on lap 31 by passing Fisichella in his Renault-powered Red Bull. That put him seventh.
At the front the Ferraris had decisively taken control of the second stint. Massa was pulling away from Hamilton at half a second a lap, while Raikkonen was taking more than that out of him in the pursuit of second place.
It got worse for McLaren on lap 32 when Heidfeld got around the outside of Alonso at turn three to take fourth place. Like Hamilton, he was struggling with oversteer.
Coulthard was among the earliest drivers to make his second stop, on lap 37, but his fantastic run ended there with apparent driveshaft failure as he pulled away.
He joined Sato in retirement, who had a gigantic engine failure on the start straight on lap 35. Five laps later, the second Red Bull of Webber also retired. Indeed, that completed the quartet of Red Bulls, as Liuzzi’s Toro Rosso stopped many laps ago.
Later in the second stint the McLarens started to get back on terms with the Ferraris – either because they liked the lower fuel load better or because Massa’s 10 second lead allowed him to be conservative.
Raikkonen was now just one second behind Hamilton but he seemed content not to dive into a move and wait instead for the pit stops.
On lap 41 Massa confirmed that he’d taken a lighter fuel load in the second stint by being the first of the leaders to stop – and take on the harder tyre. Raikkonen and Heidfeld did likewise the next time around.
But if McLaren were hoping that the Ferraris having to use the harder tyres sooner would play into their hands, those hopes were dashed on lap 43 when Massa set the fastest lap of the race on his first lap out of the pits.
Alonso’s pit stop on lap 44 didn’t enable to get back ahead of Heidfeld – but McLaren were consoled by Hamilton’s stop which kept him clear of Raikkonen.
If the Ferraris now looked set to waltz their way home, it didn’t quite turn out that way. Hamilton attacked Massa’s advantage, taking over half a second per lap out of him at first until the Brazilian began to respond. Raikkonen dropped back, and Alonso started to push Heidfeld.
The heat of Bahrain continued to hit the cars hard and claimed Anthony Davidson on lap 53. It had repercussions for the battle for the lead as well, as it coated Hamilton’s car in oil. Not only that, but Davidson got a good half-lap done before he pulled over, greasing up the track considerably.
Further back Alonso was discovering what Massa learnt in Malaysia – BMWs are hard to pass.
Hamilton continued to hack at Massa’s lead but the Ferrari driver was able to manage his lead without letting the McLaren get too close, turning up the wick as the gap shrunk to three seconds.
Massa took the chequered flag 2.3s ahead of Hamilton, who had 7.5s over Raikkonen at the end. Heidfeld finished fourth for the third race in a row having again got his BMW ahead of one of the ‘top four’ cars.
Kubica, sixth, will be disappointed with the 30s deficit to his team mate. Trulli finished seventh and held of compatriot Fisichella in another disappointing weekend for Renault.
Kovalainen was just outside the points ahead of the Williamses of Rosberg and Wurz, who might both have scored had they not got in each other’s way so much.
Ralf Schumacher finished twelfth ahead of Rubens Barrichello, with the Spykers of Christijan Albers and Adrian Sutil behind them. Davidson was classified last after his late retirement.