Lewis Hamilton will start the Spanish Grand Prix from pole position – his third of the season – as he narrowly beat the Ferrari's Sebastian Vettel by just 0.051 seconds under the sunny Barcelona skies.
Hamilton secured provisional pole on his first flying lap of Q3 and failed to improve on his second run; Vettel threatened for pole, but in the end split the Mercedes drivers, after a slow final sector time.
Bottas struggled to match his team-mate's time, complaining of rear instability, as he finished in third position.
Vettel's session didn't quite go to plan after a late engine change following on from an FP3 issue. He got out in time for Q1, before his engineer called on him to "stop now", an order Vettel questioned. A quick reset meant he was able to continue, putting the drama behind him.
Kimi Raikkonen was fourth fastest, ahead of the Red Bull pair, who were closer than at recent races, with Max Verstappen half a second off Hamilton's time.
Daniel Ricciardo finished further adrift in sixth position, having struggled through the final sector.
A surprise seventh place for local favourite Fernando Alonso will be welcome news for McLaren, particuarly after the Spaniard completed just one lap during first practice on Friday.
Force India's Sergio Perez, Williams' Felipe Massa and Esteban Ocon completed the top 10.
For the first time this season, the new generation of cars exceeded the target of being five seconds a lap quicker than 2015, with Hamilton's pole time easily beating that set by Nico Rosberg two year's previously (1:24.681).