Max Verstappen extended his championship lead but was pipped to pole for the Brazilian Grand Prix by Valtteri Bottas, who won Saturday's sprint qualifying race.
Red Bull driver Verstappen started in first after Lewis Hamilton had his result from Friday's qualifying session – in which he went fastest – ruled out due to a DRS infringement but was denied the maximum three points by Bottas.
The Dutchman now holds a 21-point advantage over reigning champion Hamilton, who recovered to fifth after being forced to start from the back of the grid.
However, a five-place grid penalty for taking a new engine means Hamilton will get away from 10th on Sunday.
Bottas took the lead into turn one as Verstappen complained of a gear sync issue and the championship leader was down to third after going wide at turn four.
Verstappen regained second from Carlos Sainz on lap four and he gradually ate into Bottas' lead before letting his tyres cool ahead of a late push.
However, Bottas was able to keep Verstappen out of DRS range to cling on for pole, with Sainz holding off Sergio Perez to take third place.
Bottas' performance provides a slight reprieve for Hamilton, who showed he will still be a factor on Sunday by getting from 20th to fifth in the space of 24 laps.
1. Valtteri Bottas (Mercedes)
2. Max Verstappen (Red Bull) +1.170s
3. Carlos Sainz (Ferrari) +18.723s
4. Sergio Perez (Red Bull) +19.787s
5. Lewis Hamilton (Mercedes) +20.872s*
6. Lando Norris (McLaren) +22.558s
7. Charles Leclerc (Ferrari) +25.056s
8. Pierre Gasly (AlphaTauri) +34.158s
9. Esteban Ocon (Alpine) +34.632s
10. Sebastian Vettel (Aston Martin) +34.867s
*Hamilton has a five-place grid penalty
1. Max Verstappen (Red Bull) 314.5
2. Lewis Hamilton (Mercedes) 293.5
3. Valtteri Bottas (Mercedes) 188
4. Sergio Perez (Red Bull) 165
5. Lando Norris (McLaren) 150
1. Mercedes 481.5
2. Red Bull 479.5
3. Ferrari 269.5
4. McLaren 255
5. Alpine 106