David Silva’s Spain were eliminated by Russia, despite dominating possession for 120 minutes.
Spain completed 1,006 passes, only 21 fewer than Russia have completed in their four World Cup matches, but a fine defensive display saw the game finish 1-1.
Fernando Hierro’s side were ahead on 12 minutes after Sergei Ignashevich put through his own net after attempting to stop Sergio Ramos reaching Marco Asensio's free-kick at the far post.
But just before half-time, Artem Dzyuba scored from the penalty spot after Gerard Pique’s handball.
And it was the hosts, backed by remarkable support inside the Luzhniki Stadium, who won on penalties. Veteran goalkeeper Igor Akinfeev was the hero, denying Koke and then Iago Aspas as Russia won the shoot-out 4-3.
It sparked manic scenes of delirium as Russia made it through to their first World Cup quarter-final since Mexico 1970.
Russia will play Croatia in the last-16 after Zlatko Dalic’s side defeated Denmark.
A goal inside the first minute from Martin Jorgensen saw Denmark take the lead, but Juventus striker Mario Mandzukic fired home three minutes later to draw Croatia level.
Deep into extra-time with a shoot-out looming, Croatia were handed a penalty after Ante Rebic was brought down when he looked certain to score – but Luka Modric, brilliant throughout the tournament, had his spot kick saved by Kasper Schmeichel.
Danijel Subasic then saved three penalties in the shoot-out as Croatia progressed in dramatic circumstances.
Monday sees Brazil take on Mexico in the 3pm kick-off, with four City players hoping to be involved.
Hector Moreno, who is suspended after accumulating two yellow cards, misses out for Mexico.
De Bruyne, operating in a deep-lying role so far in Russia, is almost certain to start, and after an impressive 15 minutes against England on his comeback from injury, Kompany is likely to return to the starting line-up.
Spain 1-1 Russia (3-4 on pens)
Croatia 1-1 Denmark (3-2 on pens)
Brazil v Mexico – 3pm
Belgium v Japan – 7pm