The deployment of the safety car after Jarno Trulli crashed out of the race gave Raikkonen the glimmer of an opportunity to get past Schumacher in the last 15 laps but the six-times world champion held his ground to take his 80th grand prix win.
Raikkonen was second to give resurgent McLaren their first podium finish of the season, while Schumacher's Brazilian team mate Rubens Barrichello held off British hopeful Jenson Button for third place.
Before Trulli's crash, from which the Italian walked away apparently unhurt, Ferrari's superbly executed two pit-stop strategy for Schumacher first overhauled and then outpaced Raikkonen after the Finn had made a flying start from pole position on Sunday.