Pole-winner Robert Kubica took another podium for BMW in third, ahead of teammate Nick Heidfeld - a result that puts the team into the lead of the constructors' championship for the first time in their short history.
But it was a disastrous day for pre-race championship leaders Lewis Hamilton and McLaren. The Briton lost seven places off the line with a very poor start, then hit former teammate Fernando Alonso and broke his front wing. He could only finish 13th, while teammate Heikki Kovalainen was a quiet fifth.
Massa instantly shot past front row partner Kubica and into the race lead at the start, with Kovalainen dodging around Hamilton to move up to third. The Finn out-muscled countryman Raikkonen through Turns 1 and 2, but was repassed by the world champion further ahead the opening lap.
Raikkonen then rapidly caught and passed Kubica for second, driving around the outside of the Pole at Turn 1 on lap three, while Kovalainen lost another place to Heidfeld when he ran wide on the same lap.
Hamilton's bad start had dropped him to 10th, and he was attempting to pass Alonso for ninth when he clipped the back of the Renault as they accelerated out of Turn 2. The McLaren briefly became airborne and lost its front wing, leaving Hamilton down in 18th and a minute behind the leaders after he pitted for repairs.
This tangle was one of several early incidents, with Jenson Button (Honda), Adrian Sutil (Force India) and David Coulthard (Red Bull) all having to pit with damage after a chaotic opening lap. Toro Rosso's Sebastian Vettel sustained broken suspension, while Renault driver Nelson Piquet spun down the order on the second lap. He recovered several positions before retiring with gearbox failure.
At the front, Massa edged away from Raikkonen and established a five-second early lead. Kubica kept Raikkonen under pressure until pitting on lap 17, three laps earlier than Raikkonen, who was the first Ferrari driver to stop.
With Kubica then losing time behind Toyota's Timo Glock, who was running a very long first stint, the Ferraris took control of the middle part of the race. Raikkonen narrowed Massa's advantage to three seconds with a series of fastest laps, but the Brazilian always had enough speed in hand and managed to rebuild his lead again.
By the time the final stops were completed, Massa's lead was back up to seven seconds, while Raikkonen had to focus on the resurgent Kubica, who stopped later than the Ferraris and got back within three seconds of second place. The Finn stayed ahead though, and now leads the championship.
Heidfeld also led several laps with an extremely late final stop, helping him to secure fourth, comfortably ahead of Kovalainen. The McLaren set the fastest lap of the race in the closing stages, but still finished nearly 30 seconds behind the victorious Massa.
Jarno Trulli had a very strong race to sixth for Toyota, pressuring Kovalainen in the middle stages. The Italian was able to pull away from the chasing Mark Webber (Red Bull), who passed Nico Rosberg's Williams for seventh at the first stops.
Glock's strategy allowed him to run as high as third, and he ultimately beat Alonso to ninth as the damaged Renault struggled to hold off Rubens Barrichello in the final laps.
Hamilton had to settle for 13th behind Giancarlo Fisichella's Force India, taking the place with a late move on Williams' Kazuki Nakajima.
Behind Toro Rosso's Sebastien Bourdais and the two Super Aguris, Coulthard finished 18th after a collision with Button. The Honda driver attempted to pass Coulthard as both chased the midfield pack, but rode up over the side of the Red Bull and had to retire. Coulthard managed to rejoin and coax his battered car to the flag.
PROVISIONAL RACE RESULTS
The Bahrain Grand Prix
Bahrain International Circuit, Sakhir, Bahrain;
57 laps; 308.238km;
Pos Driver Team Time
1. Massa Ferrari (B) 1h31:06.970
2. Raikkonen Ferrari (B) + 3.339
3. Kubica BMW Sauber (B) + 4.998
4. Heidfeld BMW Sauber (B) + 8.409
5. Kovalainen McLaren-Mercedes (B) + 26.789
6. Trulli Toyota (B) + 41.314
7. Webber Red Bull-Renault (B) + 45.473
8. Rosberg Williams-Toyota (B) + 55.889
9. Glock Toyota (B) + 1:09.500
10. Alonso Renault (B) + 1:17.181
11. Barrichello Honda (B) + 1:17.862
12. Fisichella Force India-Ferrari (B) + 1 lap
13. Hamilton McLaren-Mercedes (B) + 1 lap
14. Nakajima Williams-Toyota (B) + 1 lap
15. Bourdais Toro Rosso-Ferrari (B) + 1 lap
16. Davidson Super Aguri-Honda (B) + 1 lap
17. Sato Super Aguri-Honda (B) + 1 lap
18. Coulthard Red Bull-Renault (B) + 1 lap
19. Sutil Force India-Ferrari (B) + 2 laps
Fastest lap: Kovalainen, 1:33.193
Driver Team On lap
Piquet Renault (B) 42
Button Honda (B) 20
Vettel Toro Rosso-Ferrari (B) 1
World Championship standings, round 3:
1. Raikkonen 19 1. BMW Sauber 30
2. Heidfeld 16 2. Ferrari 29
3. Hamilton 14 3. McLaren-Mercedes 28
4. Kovalainen 14 4. Williams-Toyota 10
5. Kubica 14 5. Toyota 8
6. Massa 10 6. Renault 6
7. Trulli 8 7. Red Bull-Renault 4
8. Rosberg 7 8. Toro Rosso-Ferrari 2
9. Alonso 6
10. Webber 4
11. Nakajima 3
12. Bourdais 2
All timing unofficial