David Villa came to Spain's rescue as the striker became his country's record goalscorer in the Euro 2012 qualifier against Czech Republic in Granada.
Jaroslav Plasil's long-range drive just before the half-hour gave the visitors a surprise lead in the Group I match.
But midway through the second half Villa took control, first beating Chelsea goal keeper Petr Cech with a low shot and then a penalty soon after.
In 72 games for Spain, Villa has scored 46 goals - two more than Raul.
The former Real Madrid striker took 102 matches to score 44 times for Spain but Villa's 46 goals have come in 72 games.
The victory ensured Spain, who have 12 points from four games, protected their 100% record - as did Netherlands whose easy 4-0 away win over Hungary was their fifth successive Euro 2012 Group E qualifying victory.
Rafael van der Vaart gave the 2010 World Cup runners-up the lead in the eighth minute with Ibrahim Afellay adding a second just before the break.
Dirk Kuyt beat Hungary's offside trap to make it 3-0, with Robin van Persie completing the rout in the 62nd minute.
The Dutch have a maximum of 15 points after five matches, six ahead of Hungary.
Italy took control of Group C after beating Slovenia 1-0 in Ljubljana thanks to Thiago Motta's 73rd-minute goal.
In only his second appearance for Italy, Brazil-born Motta fired into the corner for his first international goal to take Italy onto 13 points, six ahead of Slovenia after five matches.
Goals by Philippe Mexes and Yoann Gourcuff gave France a 2-0 win in Luxembourg in a match that witnessed the international returns of Patrice Evra and Franck Ribery, following their respective five-match and three-match bans.
Evra and Ribery, who both had quiet games, were subjected to boos by the 2,000 French fans who had travelled to the Josy Barthel stadium.
Mexes headed in a Samir Nasri free-kick on 28 minutes to give those fans something to cheer about, with Gourcuff volleying in the second goal on 72 minutes.
France have 12 points from five games, four points ahead of Belarus, who travel to third-placed Albania on Saturday.
Axel Witsel scored early in each half as Belgium coasted to comfortable 2-0 win over Austria in Group A in Vienna.
Witsel beat goalkeeper Jurgen Macho to the ball and headed in on six minutes before the Standard Liege player volleyed in his second on 50 minutes.
The win took Belgium level with Austria on seven points - five behind group leaders Germany, who play Kazakhstan on Saturday and have a 100% record from their four games.