Button got the better of pole-sitter Alonso at the start
Hamilton was out on the first lap after colliding with Massa
Webber had a battling race passing Schumacher and Hulkenberg
Button managed to hold off Alonso for over half the race
But Alonso made it past during the pit stop phase
Button was unable to keep up with Alonso due to damage on his car sustained on the first lap
Alonso won comfortably with Button second and Massa third
Alonso won for the first time since his controversial German GP victory
The result puts Alonso and Ferrari right back in the title hunt
The top five drivers are now covered by the same points gained for a win
Fernando Alonso won the Italian Grand Prix at Monza after passing initial leader Jenson Button on lap 38 as a result of the pit-stops.
After taking a hard-earned pole position on Saturday in his Ferrari, Alonso did not have the best getaway at the start of the race, and that allowed Button into first place in his McLaren by turn one.
Felipe Massa, who started third, challenged Alonso through the Curve Grande, while Lewis Hamilton, who started fifth and had already passed the slow-starting Mark Webber, was lurking just behind the two Ferraris.
At the second chicane Alonso had the inside line on Massa and secured second place in the braking zone. Hamilton behind attempted to follow him through past Massa, but didn't commit fully to the move.
Hamilton's front right wheel connected with Massa's left rear wheel twice with the second contact causing irreparable damage to Hamilton's front right wheel.
The McLaren driver slid into the gravel trap at the next corner and out of the race.
Up front, Button was immediately under threat from Alonso. This was not only because of Button's high downforce set-up, but because contact between him and Alonso in turn one on the first lap had damaged Button's rear diffuser.
Button was easy prey for Alonso on the straights, but he did not make any mistakes in the corners and was able to hold him off.
After 10 laps Button put in a series of quick laps and briefly broke away, but Alonso soon reeled him in again.
On lap 21 Vettel ceded seventh place to Webber, telling the team over the radio that his engine was damaged.
Button pitted first freeing Alonso to push hard in free air. The Ferrari driver pitted a lap later and emerged in the lead.
From then on Alonso was never headed and fully deserved to win in front of the ecstatic Italian fans.
Massa finished third with Vettel fourth. The Red Bull driver's engine troubles had seemingly resolved itself and he made his mandatory pit stop on the last lap to leapfrog a frustrated Webber and Nico Rosberg in the Williams.
The result makes the drivers' championship even closer. Webber provisionally leads with 187 points, Hamilton is second with 182, Alonso is third with 166, Button is fourth with 165 and Vettel in fifth has 163.
Provisional race results
Autodromo di Monza, Italy; 53 laps; 306.720km;
1. Alonso Ferrari 1h16:24.5722. Button McLaren-Mercedes +2.9383. Massa Ferrari +4.2234. Vettel Red Bull-Renault +28.1935. Rosberg Mercedes +29.9426. Webber Red Bull-Renault +31.2767. Hulkenberg Williams-Cosworth +32.8128. Kubica Renault +34.0289. Schumacher Mercedes +44.94810. Barrichello Williams-Cosworth +1:04.20011. Buemi Toro Rosso-Ferrari +1:05.0012. Liuzzi Force India-Mercedes +1:06.10013. Petrov Renault +1:18.90014. De la Rosa Sauber-Ferrari +1 lap15. Alguersuari Toro Rosso-Ferrari +1 lap16. Sutil Force India-Mercedes +1 lap17. Glock Virgin-Cosworth +2 laps18. Kovalainen Lotus-Cosworth +2 laps19. Di Grassi Virgin-Cosworth +2 laps20. Yamamoto HRT-Cosworth +2 laps
Fastest lap: Alonso, 1:24.139
Trulli Lotus-CosworthSenna HRT-CosworthHamilton McLaren-MercedesKobayashi Sauber-FerrariSee all the latest F1 reviews, news and video