Efter att ha slutat som en av de fyra bästa treorna i gruppspelet slog Schweiz överraskande ut Frankrike i åttondelsfinal.
Spanien, som kom tvåa i Sveriges grupp, ställdes därefter mot Kroatien i åttondelsfinal. Väl där blev det seger i förlängningen efter att Alvaro Morata och Mikel Oyarzabal gjort varsitt mål.
Samtidigt som Schweiz inte hade sin lagkapten, Granit Xhaka, på planen till följd av en avstängning, gjorde Spanien det första målet efter åtta spelade minuter. Ytterbacken Jordi Alba avlossade ett skott mot mål, som tog på schweizaren Denis Zakaria och gick in i mål bakom målvakten Yann Sommer. Enligt Uefa räknas fullträffen som ett självmål av Zakaria.
En dryg kvart efter 1-0-målet åkte Schweiz på nästa smäll, då anfallaren Breel Embolo tvingades bytas ut efter att ha åkt på en skada.
Det spanska ledningsmålet blev den första halvlekens enda mål.
Spanien förde spelet under stora delar av den andra halvleken, men det var inte spanjorerna som gjorde matchens andra mål. I stället var det Schweiz Xherdan Shaqiri som enkelt kunde rulla in bollen i mål efter slarv i det spanska försvaret.
I den 77:e minuten fick sedan Remo Freuler syna det röda kortet. Det efter att ha tacklat Spaniens Gerard Moreno.
Trots att Spanien i slutet på den andra halvleken var en man mer lyckades man inte få in ett 2-1-mål innan ordinarie tid var slut. Till följd av det stod det 1-1 när domaren förkunnade att den andra halvleken var över. Således väntade förlängning.
Inte heller under den efterföljande förlängningen blev det någon fullträff från Spanien. Och Schweiz, som nämnt var i numerärt underläge, lyckades inte måla. Till följd av det väntade strafflägning, där Spanien drog det längsta strået efter att ha missat två straffar och Schweiz bränt tre. Den som slog in den avgörande elvameterssparken var Mikel Oyarzabal.
- Jag är väldigt stolt över laget. Straffar är alltid lite 50-50. Jag var nervös när jag såg straffarna. Jag tycker att vi saknade lite tur i dag, säger Xherdan Shaqiri efter matchen enligt BBC.
I semfinal på tisdag möter nationen vinnaren i mötet mellan Belgien och Italien. Det är en match som du ser på TV4 och C More.
Startelvor:
Schweiz: Sommer - Elvedi, Akanji, Rodriguez - Widmer, Zakaria, Freuler, Zuber - Shaqiri - Seferovic, Embolo.
Spanien: Simon - Azpilicueta, Laporte, P. Torres, Alba - Koke, Busquets, Pedri - F. Torres, Morata, Sarabria.