Alonso, driving for Ferrari, started from the fifth position but was third by the third turn and led from the 13th lap of the 66-lap race. He covered the 191.4 miles at the Circuit de Catalunya in 1 hour, 39 minutes, 16.596 seconds.
Lotus driver Kimi Raikkonen was second, 9.3 seconds behind Alonso, with Felipe Massa, Alonso's Ferrari teammate, third, a full 26 seconds off the pace. Drivers' points leader Sebastian Vettel was fourth and Mark Webber was fifth. They both drive for Red Bull Racing-Renault.
It was Alonso's second win this year on the Formula 1 tour and 32nd of his career. He passed Nigel Mansell for fourth place on the all-time Grand Prix win list. He trails only Michael Schumacher (91 wins), Alain Prost (51) and Ayrton Senna (41).
With five of the 19 2013 Grand Prix races completed, Vettel has 89 points leading the drivers' standings. Raikkonen is second at 85 points and Alonso has moved into third place with 72 points.
The Formula 1 tour next races May 26 at the Monaco Grand Prix, where Webber is the defending champion.