The triple champion, who celebrated his 32nd career win and third at Monza to boos from Ferrari fans, led from pole position with the possibility of rain – which never came – looking more of a threat than his rivals.
Alonso finished runner-up – 5.4 seconds behind – with Red Bull's Mark Webber, who is leaving Formula One at the end of the season, taking third place in his final grand prix on European soil to deny Ferrari's Felipe Massa a place on the podium.
It was Webber's first appearance on the Monza podium.
Vettel now has 222 points to Alonso's 169, with Lewis Hamilton – last year's Italian GP winner who finished ninth for Mercedes at the fastest circuit on the calendar – on 141 with seven races remaining.
"Fantastic race," said Vettel in a podium interview with former Ferrari champion John Surtees, to boos and whistles from the massed ranks of Ferrari faithful who flooded the pit straight with their red flags and shirts.
A good cushion
"But you can hear the difference when you don't win here in a red suit," added the German, who had to manage a tyre problem in his first stint and mechanical worries in the closing laps.
"We had problems with the gearboxes at the end, but I was OK because I had a good cushion and it was a fantastic win."
Vettel took the first victory of his F1 career at Monza for Toro Rosso, an Italian team, and Sunday's reception was far less enthusiastic with Alonso left in no doubt that he was the crowd's hero.
"Second place is good, to have this podium ceremony which is the most spectacular podium of the year. Hopefully we'll come back next year and have first place," said the Spaniard, who had started in fifth place and behind Massa.
"I think we extracted the maximum from the car," added Alonso, who has stood on the Monza podium in all of his four years with Ferrari.
The Brazilian, who was second at the end of the first lap with Alonso fourth, did his duty and let Alonso through without a fuss on lap eight once the Spaniard had passed Webber with a bold move that clipped the Red Bull's front wing.
Germany's Nico Hulkenberg was fifth for Sauber with compatriot Nico Rosberg sixth for Mercedes and Australian Daniel Ricciardo seventh for Toro Rosso.
France's Romain Grosjean was eighth for Lotus, with Britain's Jenson Button 10th to take a point for McLaren on a weekend in which the Woking team celebrating their 50th anniversary.
Lotus's Kimi Raikkonen, who ended a 27-race streak in the points with a retirement in Belgium last month, had a first lap collision and suffered his second successive grand prix without a point after finishing 11th.
Britain's Paul Di Resta retired on the first lap after a collision with Grosjean while Frenchman Jean-Eric Vergne was the only other retirement for Toro Rosso in a race low on thrills and spills. – Reuters