The six-time world champion suffered a scare during the session, as he spun on his first hot lap in Q2 on the medium compound.
Hamilton was outpaced by Bottas for much of the qualifying session however the Briton managed to get the better of his Finnish teammate in the final session.
However, it was a more difficult session for Alexander Albon, as the Thai-British driver was knocked out in Q2 and is set to start tomorrow's grand prix from 12th.
Stroll's stand-in teammate Nico Hulkenberg was 12th fastest, failing to advance into Q3 in his first qualifying session since Abu Dhabi last year.
Sebastian Vettel crossed the finish line in ninth place, however he had his lap time deleted for exceeding track limits at Copse, dropping him down to tenth.
Both AlphaTauri's were knocked out in Q2, with Gasly setting the exact same lap time as Lance Stroll - however as the latter set his time first, he advanced into the final session.
George Russell once again managed to find himself in Q2, however the Williams driver is under investigation for failing to slow for yellow flags, which were deployed in Q1 after his teammate Nicholas Latifi spun.
Both Alfa Romeos and Haas' joined Latifi in the Q1 drop zone with Magnussen and Giovinazzi outpacing their respective teammates.
Bahrain International Circuit - Winter testing