Vettel surged into the lead on the 41st lap and led a Red Bull one-two ahead of teammate Mark Webber by 7.1 seconds. Webber, who started from pole position, passed Lotus' Romain Grosjean on the penultimate lap. Grosjean led much of the race but could not take his maiden F1 victory and finished third.
It was Vettel's fourth win in the past five races at Suzuka and his ninth win of the season.
"We had a great car and were fast again this year," Vettel said. "Being able to finish on the podium and to win four times here is incredible. The fans here are incredible, they really respect us."
Vettel managed the rare feat of a fifth-straight race win and leads the championship by 90 points from Alonso with four races remaining. The last driver to win five races in a row was Michael Schumacher in 2004.
Vettel's two-stop strategy and controlled tire wear was the difference.
Grosjean, who started on the second row, grabbed the lead at the first turn and held it until the 29th lap when he went into the pits for the second time to change tires. Vettel took the lead and waited for his final pit stop on lap 37.
With fresh hard tires, Vettel blasted past Grosjean on lap 41 to take the lead for good.
Vettel got off to a rough start when he clipped Lewis Hamilton's right rear tire before Turn 1, forcing the Mercedes driver to retire after the ninth lap due to a puncture and associated damage.
"I had a very poor start," Vettel said. "I clipped the front wing but after that we were patient and I managed to get past Romain and beat Mark on the tire strategy. The decision (on the tires) was made on the first stint because we stayed out longer on the first tires. It was not easy to make the two-stop work especially in the middle sector but it worked in the end."
Grosjean was bidding to become the first French driver to win a Grand Prix since Olivier Panis at Monaco in 1996.
"What a start," Grosjean said. "Today was a very good race but the Red Bull caught us but we were the only ones who were able to challenge them."
Despite preserving the championship race, Alonso conceded the title is virtually decided.
"Even if Sebastian retires in all four races I need to win them all but we are struggling a bit at the moment," Alonso said. "We will continue to give our all in every race though and then if he wins it, I'll shake his hand."
Caterham driver Giedo van der Garde and Marussia's Jules Bianci were involved in contact at the back of the field after the start and were both out of the race quickly.
Prior to Sunday's race, the drivers honoured Maria de Villota with a moment of silence. The former F1 test driver was found dead in a hotel room in Seville, Spain, on Friday. Her family said an autopsy showed that lingering injuries from her racing accident a year ago likely caused her death.