Michael Schumacher held off a challenge from world champion Fernando Alonso to win the San Marino Grand Prix and re-ignite his title challenge.
SAN MARINO GP RESULT
1 M Schumacher (Ferrari)
2 F Alonso (Renault)
3 JP Montoya (McLaren)
4 F Massa (Ferrari)
5 K Raikkonen (McLaren)
6 M Webber (Williams)
7 J Button (Honda)
8 G Fisichella (Renault)
The Ferrari driver led comfortably from the start but ran into tyre problems after his first pitstop and had to fight hard to repel Alonso.
Renault failed to grab the lead with an early final stop and Schumacher managed to survive in front to the end.
McLaren's Juan Pablo Montoya was third, with Honda's Jenson Button seventh.
The Englishman was again unable to live up to his qualifying speed.
Button held on to his second-place grid position until he made his first stop on lap 15, five laps before Schumacher and 10 before Alonso.
Betraying Honda's use of a lighter fuel load to gain an artificially high grid position, that put Button on a three-stop strategy compared to the two-stop plan of his major rivals, and he was not a factor in the battle for the lead thereafter.
His hopes were further hit at his second stop, when he pulled away from the pits with the fuel hose still attached to his car.
The nozzle tore away from the hose, forcing the Englishman to stop in the pit lane in order to have it removed before he was able to continue.
The delay cost him a probable third place, leaving him down in fifth and disappointed for the fourth race in a row.
Up at the front, Schumacher appeared to be heading for a comfortable victory until his first stop, after which he suddenly ran into severe tyre problems.
The lack of grip cost him more than a second a lap and meant Alonso was right on his tail by lap 34.
The Spainard tried in vain to find a way past Schumacher for seven laps on a track where it is notoriously difficult to overtake before Renault decided to make a tactical gamble in an attempt to grab the lead.
They brought Alonso in early for his final stop on lap 41, but Ferrari responded immediately by bringing Schumacher in on the next lap, allowing the German to retain his lead.
Renault engineering director Pat Symonds said: "We had enough fuel to go a little bit further, but we weren't sure if it was much further than them - in fact our timings of the stops indicated it wasn't.
"So we decided to get out of Michael's slipstream. We had nothing to lose and perhaps something to gain, but in the end we weren't quick enough on the out lap."
Alonso challenged hard for the last 20 laps but was unable to get past before a mistake on lap 59, when he ran wide at the Villeneuve chicane, gave Schumacher a relatively comfortable final three laps.
The seven-time champion held on to win his first race since last June's US Grand Prix and re-ignite his attempt to win back the world title from his rival.
He said after the race: "It feels great, what else can you say? We had an amazing weekend.
"We've done a lot of work. We made some mistakes in the last race very obviously, so to come here and perform the way we did - as you can see it paid off.
"In general over the weekend we were very competitive."
Alonso remained upbeat, despite enduring a frustrating time behind Schumacher.
The Spaniard said: "It's difficult to overtake if not impossible. Michael didn't make any mistakes but I am happy."
Results of Sunday's San Marino Grand Prix:
1. Michael Schumacher (Ger) Ferrari 1:31:06.486
2. Fernando Alonso (Spa) Renault +00:02.096
3. Juan Pablo Montoya (Col) McLaren 00:15.868
4. Felipe Massa (Brz) Ferrari 00:17.096
5. Kimi Raikkonen (Fin) McLaren 00:17.524
6. Mark Webber (Aus) Williams-Cosworth 00:37.739
7. Jenson Button (GB) Honda 00:39.635
8. Giancarlo Fisichella (Ita) Renault 00:40.200
9. Ralf Schumacher (Ger) Toyota 00:45.511
10. Rubens Barrichello (Brz) Honda 01:17.851
11. Nico Rosberg (Ger) Williams-Cosworth 01:19.675
12. Jacques Villeneuve (Can) BMW Sauber 01:22.370
13. Nick Heidfeld (Ger) BMW Sauber 1 lap behind
14. Vitantonio Liuzzi (Ita) Toro Rosso-Cosworth 1 lap
15. Scott Speed (US) Toro Rosso-Cosworth 1 lap
16. Tiago Monteiro (Por) MF1-Toyota 1 lap
R David Coulthard (GB) Red Bull-Ferrari 47 laps
R Takuma Sato (Jpn) Super Aguri-Honda 44 laps
R Christian Klien (Aut) Red Bull-Ferrari 40 laps
R Yuji Ide (Jpn) Super Aguri-Honda 23 laps
R Jarno Trulli (Ita) Toyota 5 laps
R Christijan Albers (Ned) MF1-Toyota 0 laps
Key: R = retired