Pastor Maldonado pályafutása első Formula-1-es győzelmét aratta és 2004 után ismét Williams pilóta állhatott fel a dobogó legfelső fokára, a venezuelai pilóta maga mögött tudta tartani a helyi kedvenc Fernando Alonsót.
A Williams és a Ferrari együtt kezdték meg az utolsó köröket, de Maldonadónak sikerült néhány méter előnyre szert tennie és győzelmet szerzett, Alonso a második helyen végzett Kimi Räikkönen száguldó Lotusa előtt.
Alonso a rajtnál megelőzte Maldonadót, majd három másodperces előnyre tett szert az első etapban.
De annak köszönhetően, hogy Maldonado remek kivezető kört teljesített és Alonso beszorult Charles Pic mögé, a Williams a második boxkiállások során átugrotta a Ferrarit és néhány kör alatt hét másodperces előnyre tett szert.
Alonso elkezdett felzárkózni Maldonadóra, 4.2 másodpercre csökkentette a különbséget, mielőtt a Williams utolsó boxkiállása lassúra sikerült, az autó bal hátsó kerekével akadtak problémák. Räikkönen néhány körig az élen állt, majd az utolsó boxkiállást is teljesítette a finn pilóta, Maldonado és Alonso közben a gumikkal próbált spórolni.
Maldonadónak azonban állnia kellett Alonso nyomását, de a Ferrari volt az, aki előbb kezdett sebességet veszíteni, a távolság ismét növekedni kezdett, Maldonado 3.1 másodperces előnnyel nyerte meg a versenyt.
Räikkönen a frissebb gumikon csökkenteni tudta lemaradását a verseny vége felé, de nem volt már elég ideje ahhoz, hogy Alonsót utolérje, hat tizedmásodperccel végzett a spanyol pilóta mögött.
Romain Grosjean lett a negyedik a másik Lotusszal, Kamui Kobayashi bátor előzéseket bemutatva az ötödik helyen végzett a Sauberrel.
A Red Bull pilótája, Sebastian Vettel a hatodik helyen ért célba, miután boxutca áthajtásos büntetést kapott, mert figyelmen kívül hagyta a sárga zászlós jelzést, utolsó kerékcseréje során az első vezetőszárnyat is le kellett cserélni.
Vettel felzárkózásának Nico Rosberg és a két McLaren lett az áldozata, Rosberg az utolsó körben védekezésre kényszerült az utolsó helyről rajtoló Lewis Hamiltonnal szemben, a német pilóta a hetedik, brit riválisa a nyolcadik lett. Jenson Button egész nap szenvedett és a kilencedik lett.
A Force Indiás Nico Hülkenbergre óriási nyomást helyezett Mark Webber, aki az első körben helyezéseket veszített és vezetőszárnyat is kellett cserélni autóján.
A Toro Rosso és Paul di Resta Force Indiája mögött Felipe Massa végzett a Ferrarival, a brazil pilóta a 15. helyen végzett, miután a sárga zászló figyelmen kívül hagyása miatt áthajtásos büntetést kapott.

A kiesők között megtalálhatjuk Michael Schumachert és Bruno Sennát, akik az egyes kanyarnál akadtak össze, a Mercedes pilótája friss gumikon haladva belehajtott a kopott abroncsokat használó Williamsbe. Sergio Perez a rajtnál defektet kapott, miközben a Lotus párosát támadta az első kanyarban, később a rossz boxkiállást követően kiállni kényszerült.
A 2012-es világbajnokság hatodik versenyét, a Monacói Nagydíjat május 27-én rendezik.
A Spanyol Nagydíj végeredménye:
| Hely | Versenyző | Csapat | Idő/különbség |
| 1 | Pastor Maldonado | Williams |
1h39:09.145 |
| 2 | Fernando Alonso | Ferrari | +3.195 |
| 3 | Kimi Räikkönen | Lotus | +3.884 |
| 4 | Romain Grosjean | Lotus | +14.799 |
| 5 | Kamui Kobayashi | Sauber | +1:14.641 |
| 6 | Sebastian Vettel | Red Bull | +1:17.576 |
| 7 | Nico Rosberg | Mercedes | +1:27.919 |
| 8 | Lewis Hamilton | McLaren | +1:28.100 |
| 9 | Jenson Button | McLaren | +1:25.200 |
| 10 | Nico Hülkenberg | Force India | +1 kör |
| 11 | Mark Webber | Red Bull | +1 kör |
| 12 | Jean-eric Vergne | Toro Rosso | +1 kör |
| 13 | Daniel Ricciardo | Toro Rosso | +1 kör |
| 14 | Paul di Resta | Force India | +1 kör |
| 15 | Felipe Massa | Ferrari | +1 kör |
| 16 | Heikki Kovalainen | Caterham | +1 kör |
| 17 | Vitaly Petrov | Caterham | +1 kör |
| 18 | Timo Glock | Marussia | +2 kör |
| 19 | Pedro de la Rosa | HRT | +3 kör |
| Nem értek célba | |||
| Sergio Perez | Sauber | ||
| Charles Pic | Marussia | ||
| Narain Karthikeyan | HRT | ||
| Bruno Senna | Williams | ||
| Michael Schumacher | Mercedes |



