McLaren driver Kimi Räikkönen was leading the race at the start of the final lap, but crashed out with a suspension failure caused by a flat-spotted front tyre.
At the start, both Williams' got away from the line slowly, with Heidfeld beaten into the first corner by Räikkönen, and Webber overtaken by both Jarno Trulli and Juan Pablo Montoya before the first turn.
Red Bull Racing's David Coulthard managed to avoid the confusion, and was in 4th place at the end of the first lap after starting 12th.
As the Jordans and Minardis were forced back down the field by faster cars, Toyota's Jarno Trulli was handed a drive-through penalty because his mechanics were still on the grid within 15 seconds of the race start.
Button lost a small amount of time as a result of the pass, which was enough for Montoya to close up behind and subsequently take 9th place.
Barrichello, on a charge, overtook Vitantonio Liuzzi for 7th place on lap 8, but showed he was on light fuel, being the first driver to take their scheduled stop, which dropped him down to 12th position.
David Coulthard, who led the race for 1 lap as the pit stop sequence unfolded, was given a drive-through penalty for exceeding the pitlane speed limit.
With all the stops complete, Räikkönen retained a 2-second lead over Heidfeld, followed by Alonso, Barrichello, Coulthard, Felipe Massa, Michael Schumacher and Montoya.
Ralf Schumacher became only the second retirement of the race, losing his car at the Ford chicane, and spinning into the gravel trap.
However, under braking for turn 1, Räikkönen's suspension broke under the increasing pressure, sending him spinning narrowly past Jenson Button and into the gravel trap, ending his race.
David Coulthard picked up a valuable fourth place for Red Bull, followed by Michael Schumacher, Fisichella, Montoya and Trulli.
Felipe Massa finished 14th after his front wing failed with four laps remaining, damaging his left-front tyre, forcing him to pit to change both.