Barcelonában már az időmérőt is Hamilton nyerte meg, aki pályafutása 64. pole pozícióját ünnepelhette, és már csak eggyel marad el az örökranglistán második, legendás Ayrton Sennától. Ám a Mercedes brit pilótája idén akár a csúcstartó Michael Schumachert is lepipálhatja, aki 68-szor indulhatott az első rajtkockából.
Hamilton vasárnap mindenesetre nem profitált a kvalifikáció megnyeréséből, mert a rajt után Vettel elrobogott mellette. A másik Ferrarival a negyedik helyről induló Kimi Räikkönen összeütközött Max Verstappennel (Red Bull), bal első kereke kitört, ezért az első körben fel kellett adnia a versenyt. De pórul járt a holland is, ő sem maradt sokkal tovább a pályán.
Az ötödik körben Vettel, Hamilton, Valtteri Bottas (Mercedes) volt a dobogós helyeken száguldók sorrendje. Vettel a 15. körben állt ki először a bokszba kerékcserére, Hamilton hét körrel később, azonban nagy riválisával ellentétben neki nem a gyorsabb, de hamarabb elkopó lágy, hanem a valamivel lassabb, ugyanakkor tartósabb, közepesen kemény gumikat tették fel az autójára. Vettelt néhány kör erejéig feltartotta Bottas, de a négyszeres világbajnok végül egy zseniális manőverrel elhúzott a finn pilóta mellett.
Hamilton a 37., Vettel a 38. körben állt ki újabb kerékcserére, és a német úgy tért vissza a pályára, hogy az első kanyarban egymás mellett fordultak el Hamiltonnal. A Ferrari bal hátsó és a Mercedes jobb hátsó kereke össze is ért, Vettel azonban ekkor még megtartotta az első helyét. Ám Hamilton üldözőbe vette, és a 44. körben megelőzte.
Az ekkor már közepesen kemény abroncsokon lévő Vettel rádión azt közölte csapatával, hogy nem volt esélye megvédeni a pozícióját a Mercedes versenyzőjével szemben, akinek a lágy gumijai a hajrában sem használódtak el. Így három és fél másodperc előnnyel megnyerte a Spanyol Nagydíjat, összetettben azonban még mindig Vettel áll az élen, az előnye hat pont.
Hamilton és Vettel mögött Daniel Ricciardót (Red Bull) intették le harmadikként, pontot a 4–10. helyeken még Sergio Pérez (Force India), Esteban Ocon (Force India), Nico Hülkenberg (Renault), Carlos Sainz (Toro Rosso), Pascal Wehrlein (Sauber), Danyiil Kvjat (Toro Rosso) és Romain Grosjean (Haas) szerzett.
A vb-pontversenyek állása, pilóták: 1. Vettel 104 pont, 2. Hamilton 98, 3. Bottas (Mercedes) 63, 4. Räikkönen (Ferrari) 49, 5. Ricciardo 37, 6. Verstappen (Red Bull) 35, 7. Pérez 34, 8. Ocon 19, 9. Massa (Williams) 18, 10. Sainz 15. Csapatok: 1. Mercedes 161, 2. Ferrari 153, 3. Red Bull 72, 4. Force India 53, 5. Toro Rosso 19, 6. Williams 18.