Match ends, Spain 4, Luxembourg 0.
Holders Spain and Switzerland booked their places at Euro 2016 with comfortable victories on Friday.
Arsenal midfielder Santi Cazorla and Valencia striker Paco Alcacer both scored twice in Logrono as they beat Luxembourg 4-0 to win Group C.
However, Manchester City midfielder David Silva and forward Alvaro Morata both came off with injuries.
In Group E, Leicester City's Gokhan Inler scored as Switzerland thumped San Marino 7-0 to secure their spot.
Slovenia's 1-1 draw against Lithuania ensured Switzerland join group winners England in France.
Spain coach Vicente del Bosque was dealt early setbacks when Silva, with a sprained ankle, and Juventus forward Morata, with a calf injury, came off in the first half of their match.
However, the 2010 World Cup winners, who are bidding to become the first country to win the championship three times in a row, still managed to come away with a comfortable win and qualification.
Arsenal's Cazorla drove in the first and struck home from the edge of the penalty area, while substitute Alcacer scored from passes provided by Chelsea's Cesc Fabregas and Barcelona's Jordi Alba.
"Finally we have managed it," said Cazorla. "We couldn't let our guard down and I think it was a great win."
Behind them it is a battle between Slovakia, who lost 1-0 to Belarus, and Ukraine, who beat Macedonia 2-0, for the second automatic spot. They both have 19 points, with Ukraine hosting Spain and Slovakia, who have the better head-to-head record, at Luxembourg in Monday's final round of games.
In Group G, Russia need a point against Montenegro on Monday to secure qualification, after their 2-1 win against Moldova.
They have 17 points while Sweden have 15 points after their 2-0 win at Liechtenstein. Sweden striker Zlatan Ibrahimovic missed a penalty, but also scored his 58th international goal as the Scandinavian side secured at least a play-off spot.
Line-ups
Spain
Formation 4-3-3
- 1Casillas
- 16Torres Belén
- 3Piqué
- 4Bartra
- 18Alba
- 10Fàbregas
- 5Busquets
- 20Cazorla
- 21SilvaSubstituted forMataat 10'minutes
- 7MorataSubstituted forAlcácerat 33'minutes
- 11PedroBooked at 55minsSubstituted forNolitoat 77'minutes
Substitutes
- 2Azpilicueta
- 6San José
- 8Thiago Alcántara
- 9Alcácer
- 12de Gea
- 13Mata
- 14Etxeita Gorritxategi
- 15Nacho
- 17M Gaspar
- 19Nolito
- 22Isco
- 23Rico
Luxembourg
Formation 4-4-2
- 1Joubert
- 4Delgado
- 14MalgetBooked at 54mins
- 2Chanot
- 18Jans
- 17Mutsch
- 10Payal
- 7Gerson
- 8Martins PereiraSubstituted forDa Motaat 79'minutesBooked at 87mins
- 11BensiBooked at 20minsSubstituted forDevilleat 64'minutes
- 13JoachimSubstituted forTurpelat 90'minutes
Substitutes
- 3Jänisch
- 5Schnell
- 9Da Mota
- 12Moris
- 15Martino
- 16Thill
- 20Turpel
- 21Deville
- 22Luisi
- 23Amodio
- Referee:
- Sébastien Delferière
Match Stats
- Possession
- Home74%
- Away26%
- Shots
- Home28
- Away8
- Shots on Target
- Home9
- Away1
- Corners
- Home8
- Away2
- Fouls
- Home9
- Away15
Live Text
Post update
Full Time
Second Half ends, Spain 4, Luxembourg 0.
Post update
Foul by Gerard Piqué (Spain).
Post update
David Turpel (Luxembourg) wins a free kick on the left wing.
Post update
Offside, Spain. Nolito tries a through ball, but Jordi Alba is caught offside.
Substitution
Substitution, Luxembourg. David Turpel replaces Aurélien Joachim.
Post update
Santiago Cazorla (Spain) wins a free kick in the defensive half.
Post update
Foul by Aurélien Joachim (Luxembourg).
Post update
Attempt missed. Sergio Busquets (Spain) left footed shot from outside the box is high and wide to the left.
Booking
Daniel Da Mota (Luxembourg) is shown the yellow card.
Post update
Juanfran (Spain) wins a free kick on the right wing.
Post update
Foul by Daniel Da Mota (Luxembourg).
Post update
Cesc Fàbregas (Spain) wins a free kick in the defensive half.
Post update
Foul by Aurélien Joachim (Luxembourg).
Goal!
Goal! Spain 4, Luxembourg 0. Santiago Cazorla (Spain) right footed shot from outside the box to the bottom left corner. Assisted by Nolito.
Post update
Foul by Cesc Fàbregas (Spain).
Post update
Mario Mutsch (Luxembourg) wins a free kick in the defensive half.
Post update
Foul by Santiago Cazorla (Spain).
Post update
Daniel Da Mota (Luxembourg) wins a free kick on the left wing.
Post update
Nolito (Spain) wins a free kick in the defensive half.