Spain booked their place in their first World Cup quarter-final since 2010 as Mikel Merino's late strike saw La Roja beat Iberian rivals Portugal 1-0 in Dallas.
While many expected a World Cup tie for the ages, the opening half underwhelmed with neither side taking significant risks in attack.
Diogo Costa was called into action with an impressive double stop to thwart Lamine Yamal and Alex Baena, while Nuno Mendes went close for Portugal as his ferocious effort was deflected onto the crossbar by Pedro Porro.
The flow of the game failed to improve in the second half with both sides lacking intensity and endeavour.
It appeared the match was on course to head to extra time when Merino was substituted on with five minutes remaining, and the Arsenal midfielder has a stellar reputation for conjuring late goals.
He lived up to his billing as the game entered stoppage time, latching onto a sublime Ferran Torres pass before converting with aplomb beyond Costa at his near post.
Spain will now encounter the winner of USA v Belgium in the last eight, while the curtain falls on Cristiano Ronaldo's World Cup career after Portugal's record goalscorer confirmed this would be his sixth and final tournament appearance.
Take a look at our player ratings and match stats below.
Substitutes:
Substitutes:
Portugal | Spain | |
44% | Possession | 56% |
0.60 | Expected Goals | 1.77 |
10 | Shots | 15 |
2 | Shots on Target | 6 |
5 | Goalkeeper Saves | 2 |
3 | Corners | 7 |
426 | Total Passes | 531 |
84% | Pass Accuracy | 88% |
14 | Tackles | 19 |
23 | Clearances | 14 |
2 | Yellow Cards | 1 |
0 | Red Cards | 0 |
56' - Nelson Semedo replaced Nuno Mendes
71' - Rafael Leao replaced Joao Felix, Diogo Dalot replaced Joao Cancelo
75' - Ferran Torres replaced Alex Baena
83' - Francisco Conceicao replaced Pedro Neto, Bernardo Silva replaced Vitinha
85' - Fabian Ruiz replaced Pedri, Mikel Merino replaced Dani Olmo
89' - Yellow card for Bernardo Silva
90+1' - GOAL Spain! Scored by Mikel Merino, assisted by Ferran Torres
90+4' - Yellow card for Renato Veiga
90+7' - Borja Iglesias replaced Mikel Oyarzabal
90+8' - Yellow card for Ferran Torres