«Today is a good beginning, I’ll try and finish the job tomorrow,» added the youngster, who was fastest in two of the three practice sessions before qualifying and can take his first F1 win on Sunday.
Leclerc, a rookie with Sauber (now Alfa Romeo) last season after winning the Formula Two title, is the second youngest pole sitter of all time. Vettel did it at 21 years and 73 days with Toro Rosso at Monza in 2008.
He will also be the first driver from Monaco to start at the front since the world championship started in 1950.
Ferrari, mysteriously off the pace at the season-opening race in Australia, which was won by Bottas, were in a league of their own and restored to their position as race favourites.
The pole was the team’s first since September’s Italian Grand Prix, when they also swept the front row but lost to Hamilton in the race.
Vettel, who has more poles in Bahrain than any other driver, could put in only one run in the final pole-position shootout as the four times champion had to run twice in qualifying’s second phase after being held up by traffic.
Behind the top four, Max Verstappen qualified fifth for Red Bull ahead of Kevin Magnussen in the Haas, McLaren’s Carlos Sainz and Romain Grosjean, also for Haas.
Grosjean was later handed a three-place drop for impeding McLaren’s British rookie Lando Norris in the first phase, lifting Kimi Raikkonen to eighth for Alfa Romeo and Norris to ninth.
Ricciardo completed the top 10 for Renault, thanks to Grosjean’s penalty, with Thailand’s Alexander Albon 12th for Toro Rosso.
Ricciardo’s German teammate Nico Hulkenberg, having been impressive all weekend, was a surprise early casualty and will line up 17th.
Fallen champions Williams unsurprisingly propped up the timesheets with rookie George Russell edging out experienced Pole Robert Kubica.