Det lignede længe en kæmpe skuffelse for Real Madrid, der brændte gang på gang på Bayern Münchens Manuel Neuer.
Men da 34-årige Joselu blev skiftet ind med ti minutter igen, kom der andre chorizo-pølser på suppen.
Den spanske angriber scorede to gange på fire minutter og vendte opgøret, så Real snuppede en sejr på 2-1 (samlet 4-3) og pladsen i Champions League-finalen, hvor Dortmund venter.
Knockoutkampe over to opgør kan ofte blive en taktisk affære. Det var bestemt ikke tilfældet onsdag aften, hvor begge mandskaber skulle bruge en sejr, da første opgør i sidste uge endte 2-2.
Derfor angreb både Real Madrid og Bayern München fra første minut. Efter syv minutter fik vi den første store chance.
Gæsternes Serge Gnabry blev spillet helt fri via en dybdebold i Real Madrids målfelt. Men vinklen blev for spids til at skyde. Men tyskerens forsøg på en tværaflevering lignede mere en dårlig afslutning. Stor spildt mulighed til Bayern.
Bare fem minutter senere var spanierne på spil i den anden ende. Højrebacken Dani Carvajal var løbet med op i angrebet og fandt en helt fri Vinicius Junior i feltet.
Men brasilianerens skud blev sendt på stolpen af en vaks Manuel Neuer. Det gjorde kun chancen større, da bolden endte for fødderne af Rodrygo. Men heller ikke denne brasilianer kunne overliste Neuer, der hev endnu en pragtredning op ad lommen.
Der kunne nemt være scoret fire mål i en flot spillet første halvleg. Men da der blev fløjtet til pause, stod det 0-0.
Canadisk kanon bragte Bayern i front
At kalde kampen hæsblende ville næsten være en underdrivelse. Begge holds defensiver leverede nærmest nul fejl og tvang offensiven til at gøre det samme.
Vinicius Junior var hjemmeholdets farligste, og efter 55 minutter skabte han en stor mulighed til Rodrygo i det lille felt.
Men takket være en imponerende blokade af Eric Dier, kunne den 23-årige brasilianer ikke dirigere bolden i nettet.
Rodrygo fik dog en ny mulighed fem minutter senere på et frispark fra kanten af feltet. Men endnu engang viste 38-årige Manuel Neuer, at han ikke er i nærheden af at gå på fodboldpension. Helt ude ved stolpen, hentede han bolden og nægtede spanierne føringsmålet.
Den tyske målmand havde efter en times spil leveret fire kampafgørende redninger, der kunne gøre ham til kampens spiller uanset resultatet.
Bedst som spanierne havde taget teten og var tættest på et føringsmål slækkede spanierne på defensiven. Harry Kane sendte Alphonso Davies, der normalt gør sig på venstre back, men var blevet skiftet ind på venstre kant, i dybden.
Canadieren snød Antonio Rüdiger og gik ind i banen og trykkede af med det kolde højre ben. Men onsdag aften i Madrid var det brandvarmt. Bolden strøg helt helt op i krogen uden chance for Lunin i målet. 1-0 til gæsterne med 20 minutter igen.
Udeluk aldrig Real Madrid
Man skal ikke have fulgt meget med i Champions League de sidste par år for at vide, at man aldrig skal undervurdere de spanske giganter lige meget hvor meget tid, der er tilbage på uret.
Men at det magiske øjeblik skulle komme fra den 34-årige angriber Joselu, der er lejet hos nedrykkerne fra Espanyol, havde de færreste nok regnet med.
Med ti minutter igen blev spanieren skiftet ind og efter syv minutter stod han det helt rigtige sted. Manuel Neuer, der havde spillet en stor kamp, kunne ikke holde fast i et indlæg, hvorfor han tabte bolden i det lille felt.
Her overfaldt Joselu kuglen og sendte den i kassen og Bernabeu i ekstase. 1-1 og helt lige i opgøret med to minutter tilbage af den ordinære spilletid.
Real Madrid pressede nu voldsomt på, og fire minutter senere var comebacket komplet.
Antonio Rüdiger blev spillet fri i venstre side af feltet og fandt Joselu på kanten af offside inde foran mål.
Her svigtede den rutinerede angriber, der er født i Tyskland, ikke. Stensikkert sendte han bolden bag en chanceløs Neuer til 2-1.
Bayern forsøgte desperat at komme tilbage i opgøret. De fik faktisk bolden i mål i det 102. minut. Men linjevogteren havde løftet flaget for offside til stor frustration for tyskerne.
Kort efter fløjtede dommeren af, og spanierne kunne juble over deres sjette Champions League-finale de sidste ti år.