The Finn kept the pressure on by blasting past Alonso's Italian team mate
Giancarlo Fisichella at the start to take second place.
Raikkonen tried to force his way past after 12 laps but failed and, after
leading when Alonso went in first for his opening pitstop, lost time when his
own pit crew struggled to replace a rear tyre.
The Spaniard saw his advantage steadily increase when the Finn ran wide on
lap 46 and then stalled at his second stop.
With a more than 40 second lead, Alonso was cruising until BMW Sauber's
hometown favourite Jacques Villeneuve, the 1997 world champion and son of
Gilles, slammed into the wall with 11 laps to go and brought out the pace car.
"The race was quite difficult, you can't do any mistakes," said Alonso, whose
victory was also French tyre partner Michelin's 100th in Formula One.
"We had a nice gap but could never be over confident. Without the safety car
the gap would have been much bigger. The safety car sometimes helps you,
sometimes not."
On the restart, the Spaniard reasserted his authority by pulling away and
take the chequered flag 2.1 seconds clear of Schumacher.
Fisichella was fourth, despite a drive-through penalty for jumping the start,
with Ferrari's Brazilian Felipe Massa fifth.
Italian Jarno Trulli took his first points of the season, and first in 13
races, with sixth place for Toyota after running as high as third early on.
BMW Sauber's Nick Heidfeld was seventh and Red Bull's David Coulthard took
the final point after starting at the back of the grid due to an unscheduled
engine change.
"Thanks to the safety car everything got together," said Schumacher. "It's
just a shame there were not 10 laps left that would have made it more
entertaining.
"But we kept the damage as small as possible. We go from there," added the
37-year-old.