Vettel, who has won the last two Singapore races, flew around the 23-turn street circuit in 1 minute, 42.841 seconds, just 0.091 seconds quicker than Mercedes' Rosberg.
Saturday's performance put Vettel in position to win his third Singapore Grand Prix in a row and third consecutive Formula One race this season.
"I'm very happy with the result," said Vettel, who drives for the Red Bull team. "The car has been phenomenal all weekend."
Romain Grosjean of Lotus took the third spot in the starting grid for Sunday's 61-lap race. Red Bull's Lewis Hamilton qualified for fourth place.
Charlize Theron not engaged to Sean Penn 'yet'
Pistorius testifies he didn't consciously pull trigger when he shot girlfriend