Alonso's victory ended a 20-races long McLaren drought for the English team.
It was their first win since they won in Japan in October 2005 and the first one-two since the Brazilian race that same year.
The result moved Alonso, 25, to the top of the world drivers' championship ahead of Raikkonen, who finished third for Ferrari ahead of German Nick Heidfeld in a BMW Sauber.
Raikkonen fought hard in the closing stages to close the gap on Hamilton, but the young tyro held him off to finish seven-tenths of a second ahead as they crossed the line.
Brazilian Felipe Massa, in the other Ferrari, who had started from pole, made mistakes and finished fifth.
Italian Giancarlo Fisichella claimed sixth place for Renault, and Jarno Trulli finished seventh for Toyota.
Finland's 25-year-old Renault rookie Heikki Kovalainen scored his first point of the season by finishing eighth, a solid answer to his critics after a disappointing race in Melbourne.
At the start of the race, Alonso, in second place, made a smooth and powerful attack on pole-sitting Massa and swept ahead of him into the first right-hand bend.
Massa fought to recover but was swiftly outwitted again by the pace and intuition of Hamilton.
The Englishman shot through to claim second as the cars fought for road space and positions through turns two and three on the run towards the back straight.
Alonso settled into his rhythm and reeled off a series of fastest laps as he burnt off his fuel load.
Hamilton, as expected, raced superbly to hold his position, notably in the early laps when he was attacked by the Ferraris.
He not only defended and resisted the Italian team's cars, but re-passed them brilliantly when either managed to overtake.