"I am extremely proud."
Massa won in 1 hour, 33 minutes, 27.515 seconds. Hamilton was 2.360
seconds behind.
After dominating testing and having two consecutive pole positions, Massa gained his first victory of the season and third of his career.
He was the third different winner in three races this season.
"The results of first two races was not what I expected," Massa said.
"Something was missing. ... I had a bit of mistakes. This time we put
everything together."
Two-time defending world champion Fernando Alonso was fifth, creating a three-way tie in the drivers' standings.
Alonso, Hamilton and Raikkonen each have 22 points, but Alonso and Raikkonen have both won already this season.
Massa is next with 17 points.
On a day with poor conditions for driving, Massa was on the pole and led virtually all the way, just dropping out of first on the two pits stops.
Massa made up for his mistakes at the start of the last GP when this time he held first through the first turn with Hamilton and Alonso second and third.
"The best race is to get a good start," Massa said.
"And to finish in the front."
After 10 laps, Massa led by about a second over Hamilton, and Alonso was holding off Raikkonen.
"Unfortunately I didn't get as good as start as Felipe," Hamilton said.
"I just had to make sure to stay as close as possible to him."
There were no changes among the top eight until the first pit stops when the complexion of the race changes. Hamilton started things at the end of lap 19.
Massa, Alonso and Raikkonen followed a lap apart.
After things settled down by lap 25, Massa had increased his led to nearly six seconds over Hamilton and Raikkonen had taken over third from Alonso.
Massa led by more than eight seconds over Hamilton by the 30th lap with Raikkonen still 10 seconds back, and Alonso was fading.
Heidfeld then passed Alonso on lap 32 with a neat move on the outside.
By lap 39, Massa was cruising with a 10-second lead over Hamilton but
Raikkonen just a second back of Hamilton.
After the second pit stops, Massa still led comfortably.
Hamilton closed to within three seconds at the end but never really got close enough to challenge Massa.
"The second stint was fantastic for me. I managed to build a very nice
and good gap," Massa said.
"I started to look after my car and keeping the pace."
Raikkonen ended up 10.8 seconds back in third, and Heidfeld was fourth for the third consecutive race with Alonso running out of laps to overtake him.
Alonso won the Bahrain GP last year to begin a stretch in which he won six of the first nine races for Renault.
He switched to McLaren at the end of the season, while Raikkonen moved from McLaren to Ferrari.
After races in Australia, Malaysia and Bahrain, the series moves to Europe for the Spanish Grand Prix on May 13.