McLaren's Lewis Hamilton breezed to an impressive victory at the classic Monza circuit.
Even more impressive was Sergio Perez who stormed to second, with Sauber combining a canny strategy and a stunning driver performance.
Spain's Fernando Alonso salvaged third from tenth on the grid, maintaining his lead in the 2012 championship.
Red Bull had a terrible weekend, with both cars retiring within a couple of laps of each other in the dying laps.
Practice and Qualifying
Crowd favourite Fernando Alonso had a fraught day on Friday with his car grinding to halt. It got worse on Saturday as McLaren took possession of the front row, his teammate Massa third, and Alonso relegated to tenth with a broken car.
Mark Webber could only snare 11th on the grid, Daniel Ricciardo 14th.
As it had all weekend, Monza's amazing weather delivered on race day.
Lewis Hamilton's start was as good as Button's was bad. Massa found his way by Button and challenged Lewis into the first chicane. Hamilton took the middle of the road and the inside line before picking up a three-second lead by the end of lap one.
Alonso moved forward to sixth while Webber went backwards to 14th. Vettel worked his way to fifth to harrass Michael Schumacher, passing him on the fourth lap.
Jean-Eric Vergne had a heart-stopping moment at the Rettifilio. Just as he hit the brakes, his left rear failed, pitching him into a spin. The Toro Rosso clattered over the sleeping cops on the inside of the turn, the car pointing skyward before crashing down again.
Webber began to make progress by lap 11, finding his way through to 10th place after passing di Resta's Force India.
Bruno Senna was having an eventful race, coming together with Nico Rosberg at turn one and with Nico Hulkenberg at the back of the circuit.
Schumacher was the first of the top ten to pit on lap 16, pitting from sixth place and releasing Raikkonen, who was promptly passed by Sergio Perez in an audacious move around the outside.
Webber continued his march forward, passing Kobayashi at turn one as Raikkonen pitted.
Ferrari ran into more trouble, this time on Felipe Massa's car. The telemetry failed so the pit wall were blind. Perhaps distracted, he lost a place to Button who was getting positive messages from his engineers.
Massa pitted on lap 20 and his team put the Brazilian on hard tyres. The telemetry eventually returned to the delight of the men in red.
Alonso and Vettel pitted together on lap 21. They left as they arrived, Vettel in front, but Alonso's stop was slight quicker, the Spaniard running side-by-side with the German down pit-lane.
Button pitted on lap 23 for his one and only stop, rejoining ahead of the Massa-Vettel-Alonso battle. Those three drivers were battling hard while picking their way through a series of slower one-stoppers.
Hamilton pitted on lap 24 and rejoined behind Perez who was eking out a long first stint on the hard tyres. The McLaren driver was unable to pass until lap 29 after setting the fastest lap.
Vettel and Alonso engaged themselves in an entertaining battle that nearly ended in tears at the Curva Grande on lap 26. Vettel got poor traction out of the corner and despite Alonso getting alongside Vettel, he ended up on grass.
It didn't look intentional from the Red Bull driver as Alonso came from a long way back. Alonso got past Vettel cleanly at Curva Grande on lap 29 and drove away from the RB8.
A drive through penalty was awarded to Vettel, which immediately stirred up controversy as Vettel had suffered last year from a similar move but Alonso went unpunished.
Jenson Button's race came to a sputtering end on lap 34, the second place McLaren coasting to a halt before the Parabolica with a fuel pick-up problem.
Vettel took his penalty on lap 35, the trip down the pit-lane putting him behind his teammate who was running ninth.
The misfortune of these two front-runners turned out to be Perez's gain, putting him in sixth place and on Kimi Raikkonen's gearbox. He passed the Finn for the second time with a terrific move at the first chicane.
Predictably, Alonso passed Massa with a straightforward move at turn one.
Vettel's race appeared to get worse as Webber's radio crackled with a message informing him that his teammate's car may soon stop with a problem. It duly did on lap 48 with a suspected alternator problem, a repeat of his dramas on Saturday.
Sergio Perez, determined to banish the disappointment of Spa, passed Massa for third on lap 42 on the entry to the Parabolica. The Mexican was faster than both Ferraris, with the same V8 behind him.
The Sauber driver's pass on Alonso was relatively easy and he set about chasing down Lewis Hamilton. The McLaren driver responded to his team's advice to improve by a few tenths.
After being passed by both Mercedes, Webber had a huge moment coming out of the Ascari chicane and was lucky not to collect fence with his front wing as the Red Bull stepped sideways, his rear tyres shot. He was forced into retirement.
"The rear tyres were completely finished, so I dropped it out of the Ascari chicane; I managed to keep it off the wall, but then the tyres were so heavily flat-spotted, I was worried about damaging the car. We do 330 km/h round here, I couldn't see the track, so we decided to retire," Webber said.
The other Australian in the race, Daniel Ricciardo, finished twelfth, a fuel pick-up problem robbing him of pace and preventing a repeat of his Spa points finish.
Lewis Hamilton took the flag, his first win at Monza and McLaren's 180th Grand Prix victory.
The win vaulted him ahead of both Red Bull drivers in the championship race. Raikkonen rose to third despite a hard-fought fifth place while Alonso extended his world championship lead.
"Our car has been fantastic all weekend, and it was nice to have a relaxed grand prix with no troubles. I was out on my own for most of the race and just tried to manage the gap behind me," Hamilton said.
I was cruising at the end, but, once I heard that Sergio had got past Fernando, I had to push a little to keep the cushion over second place."
Formula 1 returns for the Singapore Grand Prix in two weeks.
1. Hamilton - McLaren-Mercedes - 1h19:41.221
2. Perez - Sauber-Ferrari - +4.356
3. Alonso - Ferrari - +20.594
4. Massa - Ferrari - +29.667
5. Raikkonen - Lotus-Renault - +30.881
6. Schumacher - Mercedes - +31.259
7. Rosberg - Mercedes - +33.550
8. Di Resta - Force India-Mercedes - +41.057
9. Kobayashi - Sauber-Ferrari - +43.898
10. Senna - Williams-Renault - +48.144
11. Maldonado - Williams-Renault - +48.682
12. Ricciardo - Toro Rosso-Ferrari - +50.316
13. d'Ambrosio - Lotus-Renault - +1:15.861
14. Kovalainen - Caterham-Renault - +1 lap
15. Petrov - Caterham-Renault - +1 lap
16. Pic - Marussia-Cosworth - +1 lap
17. Glock - Marussia-Cosworth - +1 lap
18. De la Rosa - HRT-Cosworth - +1 lap
19. Karthikeyan - HRT-Cosworth - +1 lap
20. Webber - Red Bull-Renault - +2 laps
21. Hulkenberg - Force India-Mercedes - +3 laps
22. Vettel - Red Bull-Renault - +6 laps