Tonåringen Mira Andreeva nådde sin första Madrid Open-final med en 6-4, 7-6 (10-8) seger över Haley Baptiste.
Den 19-åriga ryssen kommer att möta 26:e seedade Marta Kostyuk i lördagens final efter att ukrainskan besegrat Anastasia Potapova med 6-2, 1-6, 6-1.
Den nionde-seedade Andreeva vann alla utom en av sina 13 matcher på lera den här säsongen, vann titeln i Linz och nådde semifinal i Stuttgart, och blev den första tonåringen att nå tre WTA 1000-finaler.
Efter att ha tagit det första setet mot den 30:e seeden, blev Andreeva bruten när han serverade matchen vid 5-4, men blev bruten av Baptiste, som tvingade det andra setet till ett tiebreak.
Den 24-åriga amerikanen, som besegrade världens nummer 1 Aryna Sabalenka i förra omgången, räddade tre setpoäng innan Andreeva kryssade till seger.
”Om jag ska vara ärlig så känner jag mycket adrenalin. Jag känner att jag fortfarande är nervös. Jag är väldigt glad att jag vann och att jag räddade alla mina setpunkter”, säger Andreeva, som är den näst yngsta finalisten i turneringens historia efter Caroline Wozniacki.
”Saab hjälpte mig mycket. Jag är väldigt, väldigt glad. Jag kan inte hitta ett bra sätt att förklara hur jag känner just nu,” tillade Andreeva.
Kostyuk nådde sin första WTA 1000-final med en misstagsfylld match mot den lyckliga förloraren Potapova, och tog första setet med två pauser men förlorade det andra setet på 30 minuter.
23-åringen rusade till en 4-0-ledning i finalen, men vägrade skaka handen på sin ryskfödda motståndare efter matchen.
I herrturneringen förlorade titelförsvararen Casper Ruud mot Belgiens Alexander Brox med 6-4, 6-4 i kvartsfinalen.
Den oseedade Brox, som bara bröt in bland de 100 bästa för första gången förra månaden och rankas som 69:a i karriären i världen, har eliminerat seedade spelare, inklusive nr 3-seedade Felix Auger-Aliassime, i den spanska huvudstaden för fjärde gången i rad.
21-åringen besegrade Norges 21:a seedade Ruud på 96 minuter och möter Alexander Zverev, som fram till den här säsongen aldrig vunnit en tourmatch på lera, i sin första semifinal på tournivå.
Den tvåfaldige Madridmästaren Zverev har nått semifinalerna i sju av de senaste åtta Masters 1000-tävlingarna med en 6-1, 6-4 seger över 10:e-seedade Flavio Cobolli, som besegrade tysken i München-finalen 12 dagar tidigare.
Toppseedade Jannik Sinner vann onsdagens kvartsfinal och möter 21:a-seedade Arthur Fils i den andra semifinalen på fredag.
