Qualifying for the Spanish Grand Prix took place on a dry track, with Q3 becoming an exceptionally close contest between Lewis Hamilton and Valtteri Bottas. Hamilton set a new circuit record of 1:16.173 on his final run to take pole by 0.040s. The result also provided an important reference for further set-up work and weekend strategy.
Bottas was second, giving Mercedes its first front-row lockout of the 2018 season. Sebastian Vettel was third and Kimi Räikkönen fourth. Ferrari could not prevent its rivals from taking the first two grid slots, but both SF71Hs remained close behind, with Red Bull’s Max Verstappen and Daniel Ricciardo fifth and sixth.
Haas driver Kevin Magnussen was seventh and Romain Grosjean tenth. Fernando Alonso was the highest-placed Spaniard in eighth, with Carlos Sainz ninth. Both home drivers reached the top ten, and the difficulty of overtaking at the circuit made their starting positions particularly important. The result also provided an important reference for further set-up work and weekend strategy.
Stoffel Vandoorne was 11th and missed Q3, followed by Pierre Gasly in 12th and Esteban Ocon in 13th. Charles Leclerc was 14th and Sergio Pérez 15th. The midfield teams were closely matched, with small gaps between the drivers eliminated in Q2, and the final order depended heavily on the last timed lap.
Nico Hülkenberg was eliminated in Q1 in 16th, ahead of Marcus Ericsson in 17th. Sergey Sirotkin and Lance Stroll were 18th and 19th respectively. Brendon Hartley did not take part in qualifying: his team could not repair the car in time after his FP3 accident, leaving him without a qualifying time.
Hamilton improved through all three parts, from a 1:17.633 in Q1 to a 1:16.173 in Q3. Bottas’s Q3 lap was a 1:16.213 and Vettel’s a 1:16.305, leaving the top three separated by just 0.132s.

Barcelona’s run to the first corner offers only limited opportunities to attack or defend, and a Mercedes front row would help the team control the pace. Ferrari and Red Bull would need to look for an opening on the first lap, while the midfield teams would have to balance their starts with tyre management under a one-stop strategy.
The official F1 qualifying table lists Hamilton on pole, Bottas second and Vettel third. The table below gives the session times for all 20 drivers in qualifying order, including Hartley, who did not run and whose participation in the race would be subject to the stewards’ approval under the rules. The result also provided an important reference for further set-up work and weekend strategy.
| Pos. | No. | Driver | Team | Q1 | Q2 | Q3 | Laps |
|---|---|---|---|---|---|---|---|
| 1 | 44 | Lewis Hamilton | Mercedes | 1:17.633 | 1:17.166 | 1:16.173 | 17 |
| 2 | 77 | Valtteri Bottas | Mercedes | 1:17.674 | 1:17.111 | 1:16.213 | 14 |
| 3 | 5 | Sebastian Vettel | Ferrari | 1:17.031 | 1:16.802 | 1:16.305 | 16 |
| 4 | 7 | Kimi Räikkönen | Ferrari | 1:17.483 | 1:17.071 | 1:16.612 | 15 |
| 5 | 33 | Max Verstappen | Red Bull | 1:17.411 | 1:17.266 | 1:16.816 | 15 |
| 6 | 3 | Daniel Ricciardo | Red Bull | 1:17.623 | 1:17.638 | 1:16.818 | 19 |
| 7 | 20 | Kevin Magnussen | Haas | 1:18.169 | 1:17.618 | 1:17.676 | 27 |
| 8 | 14 | Fernando Alonso | McLaren | 1:18.276 | 1:18.100 | 1:17.721 | 21 |
| 9 | 55 | Carlos Sainz | Renault | 1:18.480 | 1:17.803 | 1:17.790 | 19 |
| 10 | 8 | Romain Grosjean | Haas | 1:18.305 | 1:17.699 | 1:17.835 | 26 |
| 11 | 2 | Stoffel Vandoorne | McLaren | 1:18.885 | 1:18.323 | — | 18 |
| 12 | 10 | Pierre Gasly | Toro Rosso | 1:18.550 | 1:18.463 | — | 16 |
| 13 | 31 | Esteban Ocon | Force India | 1:18.813 | 1:18.696 | — | 18 |
| 14 | 16 | Charles Leclerc | Sauber | 1:18.661 | 1:18.910 | — | 15 |
| 15 | 11 | Sergio Pérez | Force India | 1:18.740 | 1:19.098 | — | 18 |
| 16 | 27 | Nico Hülkenberg | Renault | 1:18.923 | — | — | 6 |
| 17 | 9 | Marcus Ericsson | Sauber | 1:19.493 | — | — | 9 |
| 18 | 35 | Sergey Sirotkin | Williams | 1:19.695 | — | — | 10 |
| 19 | 18 | Lance Stroll | Williams | 1:20.225 | — | — | 9 |
| — | 28 | Brendon Hartley | Toro Rosso | Did not run | Did not run | Did not run | 0 |