Fra startspor 11 kjørte han seg helt fram til tet og ble den første føreren til å vinne to VM-runder i formel 1 denne sesongen.
Bak Alonso fulgte Kimi Räikkönen i sin Lotus og Michael Schumacher som kapret sin første pallplassering siden 2006.
For verdensmester Sebastian Vettel fikk løpet en kjedelig slutt. Da det så ut til at han kunne ta sin tredje strake triumf i den spanske havnebyen mistet han all motorkraft i sin Red Bull.
Vettel gikk ut av bilen og kastet en av kjørehanskene i veggen, mens teknisk sjef Adrian Newey gjemte ansiktet i hendene i ren fortvilelse over at noe slikt kunne skje.
– All motorkraft ble borte og det var ingenting vi kunne gjøre med det. Foreløpig er det uklart hva som egentlig førte til motorhavariet, sa Vettel til BBC etter løpet.
Briten Lewis Hamilton lå i fin posisjon rett bak tetduoen da han kolliderte og måtte bryte løpet.
Resultater
1) Fernando Alonso, Spania (Ferrari) 1.44.16,649
2) Kimi Raikkönen, Finland (Lotus) 0.06,421 sek
3) Michael Schumacher, Tyskland (Mercedes) 0.12,639
4) Mark Webber, Australia (Red Bull) 0.13,628, 5) Nico Hulkenberg, Tyskland (Force India) 0.19,993, 6) Paul di Resta, Storbritannia (Force India) 0.22,866, 7) Nico Rosberg, Tyskland (Mercedes) 0.21,176, 8) Jenson Button, Storbritannia (McLaren) 0.24.653, 9) Sergio Perez, Mexico (Sauber) 0.27,777, 10) Pastor Maldonado, Venezuela (Williams) 0.34,630
11) Bruno Senna, Brasil (Williams) 0.35,961, 12) Daniel Ricciardo, Australia (Toro Rosso) 0.37,041, 13) Vitalij Petrov, Russland (Caterham) 1.15,800, 14) Heikki Kovalainen, Finland (Caterham) 1.34,600, 15) Charles Pic, Frankrike (Marussia)
1.36,500, 16) Felipe Massa, Brasil (Ferrari) 1 runde, 17) Pedro de la Rosa, Spania (HRT) 1 runde, 18) Narain Karthikeyan, India (HRT), 19) Lewis Hamilton, Storbritannia (McLaren) 2 runder.
Brøt: Kamui Kobayashi, Japan (Sauber) 24. runde, Sebastian Vettel, Tyskland (Red Bull) 24. runde, Jean-Eric Vergne, Frankrike (Toro Rosso) 31. runde.
Raskeste runde: Rosberg 1.42,163.
Pole position: Vettel 1.38,086.
Sammenlagt:
VM-førere (8 av 20): 1) Alonso 111, 2) Webber 91, 3) Hamilton 88, 4) Vettel 85, 5) Rosberg 75, 6) Raikkonen 73, 7) Grosjean 53, 8) Button 49, 9) Perez 39, 10) Maldonado 30.
VM lag: 1) Red Bull 176, 2) McLaren Mercedes 137, 3) Lotus 126, 4) Ferrari 122, 5) Mercedes 92, 6) Sauber 60.
Neste VM-runde er Storbritannias Grand Prix 8. juli på Silverstone.