Two goals from Jordi Alba and another from Fernando Torres ensured La Roja kept on course for the expected final against Brazil next weekend – but Italy and Uruguay – Spain and Brazil’s last four opponents respectively – will have a say in proceedings.
Alba put Spain ahead within four minutes and Torres and Alba both scored after the break in a routine win for the world champions.
The Super Eagles had their chances, but were guilty of poor finishing on numerous occasions.
City duo Jesus Navas and David Silva both started from the substitutes’ bench with only Silva appearing as a 55th-minute replacement for Cesc Fabregas.
And Silva, earning a landmark 75th cap, should have scored his 21st international goal when he found himself clear inside the box after a superb pass from Andres Iniesta – but the City star completely mis-hit his shot from close range.
So it’s the Light Blues (Italy) v the Reds (Spain) – Azzurri v La Roja – and a chance for former Blues favourite Mario Balotelli to upset former team-mate Silva and Navas.