The Dutchman set a 1:07.508 in Q3, going one-tenth faster than Vettel who will start on the front row.
However, due to a grid penalty for taking on a new engine this weekend, the Ferrari driver will start Sunday's race from 14th on the grid.
In the tight battle for the midfield, there was surprise as Haas managed to get both of its cars into the top ten following a handful of tricky events.
McLaren's qualifying session started off with a blow, as Carlos Sainz reported an issue with his engine while he took to the circuit in Q1.
The Spaniard failed to set a lap time and will start the race from the back of the grid. His teammate Lando Norris qualified in 11th, but will move into the top ten following the application of Leclerc's penalty.
Antonio Giovinazzi failed to progress out of the Q2 dropzone, and was the cause of double-waved yellow flags in the final moments of the session due to a spin.
Bahrain International Circuit - Winter testing