Fernando Alonso revitalised his title challenge by claiming a highly popular victory for Ferrari in its home race at Monza, ahead of McLaren's Jenson Button and Felipe Massa in the second Ferrari.
The result was even better for Alonso as erstwhile championship leader Lewis Hamilton damaged his McLaren on the first lap and retired, and while Red Bull's Mark Webber inched into the points lead, he could only finish sixth. His team-mate and fellow title contender Sebastian Vettel was fourth.
Button had made the better start, shrugging off both Alonso's attempts to squeeze him off the line, and then a tap from the Ferrari at the Rettifilio - which did minor damage to both cars - to hold the lead.
As Alonso jinked around behind the McLaren, both Massa and Hamilton tried to take advantage. Hamilton took a speculative look down the inside of Massa into the Roggia chicane, but was only partially alongside the Ferrari, and as Massa turned in on the racing line, contact was made that broke Hamilton's steering, sending him ploughing into the Lesmo gravel and out.
The only consolation for Hamilton was that his main championship rival Webber had been shoved back to ninth on the first lap, two places behind Red Bull team-mate Vettel, as fast-starters Nico Rosberg (Mercedes), Robert Kubica (Renault) and Nico Hulkenberg (Williams) filled the top six.
The top three easily pulled away from Rosberg, with Alonso clinging to Button's tail and taking the odd look at passing. Both took turns setting fastest laps as they tried to make a break, with the gap never getting larger than 1.5 seconds, and generally much smaller, while Massa lurking just a few seconds behind.
The stalemate lasted nearly two thirds of the race, as Monza's kindness to tyres meant pitstops did not start in earnest until the closing stages.
Button was first to change tyres, coming in at the end of lap 35. Alonso stayed out just one lap longer, but it was enough to overcome Button's advantage, rejoining right alongside the McLaren, clinging to the inside through the Rettifilio to hold the lead, and then immediately setting a new fastest lap to escape from Button.
As Alonso disappeared to take this third win of the year - and the first that was not aided by either attrition ahead or controversial team tactics - Button easily held off Massa for second.
Vettel finally emerged a surprise fourth. In the early stages it looked like he was set to retire, as he reported engine problems over the radio and lapped 2s off the pace for a while, allowing Webber past as he did so. But some system tweaks appeared to solve the problem, and by virtue of staying out until the penultimate lap before finally pitting, Vettel beat Rosberg to fourth.
Webber had to fight hard to take sixth, scrapping past Hulkenberg with three laps to go, having been enraged by the Williams cutting chicanes and defending firmly to stay ahead. Kubica lost out to the Williams in the pits, then to Webber as Hulkenberg came out right in front of him and cost him momentum, pushing him back to eighth.
Michael Schumacher (Mercedes) and Rubens Barrichello (Williams) completed the top 10. Last year's winner Barrichello had lost ground on the first lap and only gained the final point when Renault's Vitaly Petrov - on a similar strategy to Vettel - finally pitted on lap 51.
Tonio Liuzzi recovered from his disastrous qualifying to chase Sebastien Buemi (Toro Rosso) and Barrichello home in 12th. But Liuzzi's Force India Adrian Sutil could only finish 16th following a first lap incident.
Virgin's Timo Glock narrowly beat Heikki Kovalainen to new team honours in 17th, as the latter's Lotus team-mate Jarno Trulli retired in a cloud of smoke late on, having led the 'class' most of the way.
PROVISIONAL RACE RESULTS The Italian Grand Prix Autodromo di Monza, Italy; 53 laps; 306.720km; Weather: Sunny. Classified: Pos Driver Team Time 1. Alonso Ferrari 1h16:24.572 2. Button McLaren-Mercedes + 2.938 3. Massa Ferrari + 4.223 4. Vettel Red Bull-Renault + 28.193 5. Rosberg Mercedes + 29.942 6. Webber Red Bull-Renault + 31.276 7. Hulkenberg Williams-Cosworth + 32.812 8. Kubica Renault + 34.028 9. Schumacher Mercedes + 44.948 10. Barrichello Williams-Cosworth + 1:04.213 11. Buemi Toro Rosso-Ferrari + 1:05.056 12. Liuzzi Force India-Mercedes + 1:06.106 13. Petrov Renault + 1:18.919 14. De la Rosa Sauber-Ferrari + 1 lap 15. Alguersuari Toro Rosso-Ferrari + 1 lap 16. Sutil Force India-Mercedes + 1 lap 17. Glock Virgin-Cosworth + 2 laps 18. Kovalainen Lotus-Cosworth + 2 laps 19. Di Grassi Virgin-Cosworth + 2 laps 20. Yamamoto HRT-Cosworth + 2 laps Fastest lap: Alonso, 1:24.139 Not classified/retirements: Driver Team On lap Trulli Lotus-Cosworth 47 Senna HRT-Cosworth 12 Hamilton McLaren-Mercedes 1 Kobayashi Sauber-Ferrari 1 World Championship standings, round 14: Drivers: Constructors: 1. Webber 187 1. Red Bull-Renault 350 2. Hamilton 182 2. McLaren-Mercedes 347 3. Alonso 166 3. Ferrari 290 4. Button 165 4. Mercedes 158 5. Vettel 163 5. Renault 127 6. Massa 124 6. Force India-Mercedes 58 7. Rosberg 112 7. Williams-Cosworth 47 8. Kubica 108 8. Sauber-Ferrari 27 9. Schumacher 46 9. Toro Rosso-Ferrari 10 10. Sutil 45 11. Barrichello 31 12. Kobayashi 21 13. Petrov 19 14. Hulkenberg 16 15. Liuzzi 13 16. Buemi 7 17. De la Rosa 6 18. Alguersuari 3 All timing unofficial