At the end of the first lap, Button had built a good lead over Michael Schumacher, Montoya, Sato, Ralf Schumacher and Barrichello. Michael Schumacher closed the gap quickly though, putting in consecutive fastest laps to put pressure on Button. The pair pulled away from the field easily, both lapping at nearly 1 second faster than every other driver. On lap 4, Coulthard, still struggling at the back of the field, went off track momentarily to short-cut the chicane. Cristiano da Matta and Felipe Massa became the first drivers to pit on lap 7, Massa dropping from 11th to 14th, but taking a position from da Matta due to his faster stop. Giorgio Pantano became the first retirement of the race, going off track thanks to a hydraulics failure. Lap 8 saw Montoya become the first front-runner to stop, followed into the pits by Mark Webber. Button showed that his qualifying effort was mainly due to a lighter fuel load, stopping on lap 9 to release Michael Schumacher, who immediately started to lap faster. Ralf Schumacher, Olivier Panis and Christian Klien also made their first stops on lap 9. Sato and Barrichello pitted on lap 10, but Barrichello's faster stop allowed the Brazilian to get ahead as they exited the pits. Michael Schumacher's stop came on lap 11, but he had built up enough of a lead over Button to emerge well ahead. Jarno Trulli, momentarily in second place, pitted on lap 12, with fast work by the Renault team allowing him to take 4th position from Ralf Schumacher. Nick Heidfeld was the last of the three-stoppers to make his stop on lap 14, leaving Fisichella and Räikkönen, in 9th and 10th as the only drivers not to make a pit stop.
Barrichello, with a clearly faster car, closed up on Ralf Schumacher, but was unable to pass for several laps as Michael Schumacher built up a 12 second lead at the end of 18 laps. Coulthard, who had been switched to a two-stop strategy due to his first lap collision, made his stop on lap 19, with Fisichella following on lap 20, then Räikkönen on lap 21. Meanwhile, Massa took 11th place from Jaguar's Mark Webber, the Australian suffering a misfire in his Cosworth engine. Cristiano da Matta was again the first to pit in the second round of stops, refuelling on lap 23, followed by Webber and Massa the following lap. Minardi's Gianmaria Bruni entered the pits, with the team engineers apparently unprepared for his stop. Soon later he retired from the race, citing a continuously locking rear brake, which made the car difficult to drive. Montoya stopped on lap 25, falling back from 3rd to 7th, followed by Button on lap 26, who was able to retain his 2nd position. Michael Schumacher pitted from the lead on lap 27, easily retaining his position, with an 18 second lead. Ralf Schumacher, Barrichello and Sato all pitted on the following lap, which saw Schumacher just retain his position ahead of Barrichello, the pair nearly colliding as Schumacher was released from his pit area. Fernando Alonso then pitted on lap 30, rejoining behind Ralf Schumacher and Barrichello, who were still close together on the circuit. Trulli then stopped the following lap, splitting Schumacher and Barrichello to take fifth.
da Matta was served with a drive-through penalty for ignoring blue flags, but made a mistake and went off track soon after, ending his race. After 35 laps, Button was able to find some pace, but not enough to significantly deteriorate Schumacher's lead, which stood at 16.4 seconds. Both Sauber drivers, on different strategies, took their final stops on lap 38. Coulthard made his second and final stop for the day on lap 40, leaving him in 14th position. Räikkönen, in the other McLaren was also struggling in the midfield, but hopeful to pick up his first point of the year, pitted on lap 41. The final round of pitstops for the frontrunners began on lap 43, with Montoya and Barrichello pitting, followed by Button and Ralf Schumacher on lap 44, then Michael Schumacher and Trulli on lap 46. Trulli kept his position ahead of Barrichello, before Alonso's stop on lap 48 saw the Spaniard move ahead of both Barrichello and Trulli, into 5th position. Alonso began pressuring Ralf Schumacher, and on lap 51, attempted an overtaking move on the inside of Tosa, which saw the pair collide, sending Schumacher into a spin and dropping him down to 7th. The stewards announced the incident would be investigated after the race. Heidfeld retired from the race with a transmission problem, as Alonso moved in on Montoya and Barrichello got closer to Trulli.
Sato retired from the race with a spectacular Honda engine failure with 6 laps remaining, possibly causing worry for teammate Button, who was in 2nd position. The retirement moved Räikkönen into 8th, eyeing his first point for the 2004 season. Michael Schumacher cruised to the finish line to win his fourth race of the year, with Button in 2nd, and Montoya holding on to the final podium spot ahead of Alonso. Trulli survived an attack by Barrichello on the final lap to hold on to 5th, with Ralf Schumacher and Räikkönen closing out the pointscorers. The result continued Michael Schumacher's perfect start to the year, with a maximum 40 points from the first four races. Teammate Barrichello held on to second with 24 points, just ahead of the surprise packet Button, on 23. The constructors championship underlined Ferrari's incredible early dominance, with the Italian team on 64, over double the score of second-placed Renault, on 31, followed by both WilliamsF1 and BAR on 27.
|3||3||Juan Pablo Montoya||Williams-BMW||62||+21.617||3||6|
|8||6||Kimi Räikkönen||McLaren-Mercedes||61||+1 Lap||20||1|
|9||11||Giancarlo Fisichella||Sauber-Petronas||61||+1 Lap||18|
|10||12||Felipe Massa||Sauber-Petronas||61||+1 Lap||12|
|11||17||Olivier Panis||Toyota||61||+1 Lap||13|
|12||5||David Coulthard||McLaren-Mercedes||61||+1 Lap||11|
|13||14||Mark Webber||Jaguar-Cosworth||61||+1 Lap||8|
|14||15||Christian Klien||Jaguar-Cosworth||60||+2 Laps||14|
|15||21||Zsolt Baumgartner||Minardi-Cosworth||58||+4 Laps||19|
|Ret||16||Cristiano da Matta||Toyota||32||Accident||10|