Webber had the lead after the final pit stop 43 laps into the 56-lap race with Vettel in second. Red Bull Racing-Renault team management sent an order for the drivers to hold positions.
But Vettel soon was pushing Webber, who finally allowed Vettel to pass and win the year's second Formula 1 race.
It was the 27th Grand Prix win for Vettel, who tied Jackie Stewart for sixth-most all-time Formula 1 wins. Vettel had won twice before at Kuala Lumpur, taking first in 2010 and 2011. He finished this year's the 193-mile race at the Sprang International Circuit in 1 hour, 38 minutes, 56.681 seconds in an average speed of 188.231 mph.
Webber was 4 seconds behind while Mercedes teammates Lewis Hamilton and Nico Rosberg, apparently adhering to team orders, were third and fourth. Hamilton was 12 seconds back of Vettel and Rosberg was about half a second back of Hamilton.
Vettel, who was third at last week's season-opening Australian Grand Prix, leads the drivers' standings with 40 points. Kimi Raikkonen, after the win at Australia and a seventh-place finish in Kuala Lumpur, is second with 31 points while Webber has 26 and Hamilton 25.
The Formula 1 circuit next races April 14 at the UBS Chinese Grand Prix in Shanghai.