Trots att Villarreal vann hemmamötet i Spanien med 1-0 för en vecka sedan trodde nog de allra flesta att Bayern München skulle sätta in överväxeln och dra ifrån de gula ubåtarna i returmötet.
Men så blev det inte.
Efter en jämn första halvlek satte Robert Lewandowski tyskarnas ledningsmål. Hemmapubliken väntade nog bara på tvåan, men då kom kallduschen.
Villarreal bytte in Samuel Chukwueze i den 84:e minuten och fyra minuter senare sköt han 1-1.
Bayern München tryckte på i slutminuterna men fick inte in bollen. Tyskarna utslagna i kvarten – en jätteskräll på alla sätt och vis.
– Vi är lyckliga. Från det att vi lottades mot Bayern har vi sagt till oss själva att vi kan göra det. Tron och sättet det här laget fajtas på har hjälpt oss att uppnå det, säger Villarreals Gerard Moreno i en kommentar på Uefas hemsida och fortsätter.
– Det är väldigt svårt att vinna i fotboll men vi förtjänade att gå vidare. Vi visste att vi skulle plågas i försvaret men vi skulle få våra chanser och i slutet lyckades Chukwueze ta till vara på chansen.
För La Liga-klubben är det andra gången i klubbens historia, senast var säsongen 2005/2006, som de når semifinal i Champions League.
Bayern München har vunnit samma turnering sex gånger.
– Det är svårt att acceptera det här, säger Thomas Müller.
UEFA Champions League
FC Bayern München
1 - 1
Villarreal CF
Första halvlek
- Lewandowski33'
Andra halvlek
- 1 - 0Lewandowski (Müller)52'
- 59'Foyth
- GnabryMusiala82'
- 84'ChukwuezeCoquelin
- 84'PedrazaGroeneveld
- DaviesL. Hernandez87'
- 88'1 - 1Chukwueze (G. Moreno)
- Choupo-MotingMüller90'
- 90'+1'Lo Celso
- 90'+3'AurierParejo