Schumacher hadde beste startspor og fikk også en glimrende start. Han måtte likevel kjempe hardt mot Fernando Alonso i Renault om seieren.
Løpet ble avgjort da Schumacher valgte å gå i depoet runden etter Alonso, men tyskeren klarte å komme seg foran spanjolen da han kom på banen igjen.
Schumacher tok dermed sin første seier på 13 konkurranser. Den forrige seieren tok han i USA i juni. Han tok samtidig sin 85. Grand Prix-seier.
Juan-Pablo Montoya i sin McLaren-Mercedes ble numer tre.
Verdensmester Alonso leder fortsatt sammenlagt.
San Marinos Grand Prix for formel 1-biler søndag
VM-runde 4 av 18:
1) Michael Schumacher, Tyskland (Ferrari) 1.31.06,486
2) Fernando Alonso, Spania (Renault) 00.02,096 sekunder bak
3) Juan Pablo Montoya, Colombia (McLaren-Mercedes) 00.15,868
4) Felipe Massa, Brasil (Ferrari) 00.17,096
5) Kimi Raikkönen, Finland (McLaren-Mercedes) 00.17,524
6) Mark Webber Australia (Williams) 00.37,739
7) Jenson Button, Storbritannia (Honda) 00.39,635
8) Giancarlo Fisichella, Italia (Renault) 00.40,200,
9) Ralf Schumacher, Tyskland (Toyota) 00.45,511
10) Rubens Barrichello, Brasil (Honda) 1.17,851.
Sammenlagt:
1) Alonso 41 poeng
2) M Schumacher 31
3) Raikkonen 21
4) Fisichella 15
5) Montoya 15
6) Button 13.
Fabrikk:
1) Renault 51
2) McLaren-Mercedes 33
3) Ferrari 30
4) Honda 15
5) BMW 10
6) Williams 8.
Neste VM-runde kjøres i Nürburgring, Tyskland 7. mai.