Defending champion Aryna Sabalenka produced a stunning comeback against Elena Rybakina to set up a Madrid Open final with Iga Swiatek.
The Belarusian second seed fought back from a set and a breakdown to win 1-6 7-5 7-6 (7-5).
A two-time winner in the Spanish capital, Sabalenka will face world number one Swiatek in a repeat of last year's final.
Poland's Swiatek breezed into the Madrid showpiece earlier on Thursday with a 6-1 6-3 victory over Madison Keys.
"It's definitely going to be a great battle," Sabalenka said in her post-match interview.
"We always fight as hard as we can, always incredible matches. I'm really looking forward to this final and I'm going to do everything I can to get this win."
Swiatek, a clay-court specialist, dominated throughout her match with Keys, needing just 70 minutes to secure a place in her third WTA 1,000 final this season.
A US Open finalist in 2017, Keys could not capitalise on the few chances she had, missing out on three break points and making 28 unforced errors to Swiatek's eight.
Madrid a 'super special place' for Sabalenka
Sabalenka's title defence appeared to be on the brink after Rybakina, the fourth seed from Kazakhstan, stormed through the opening set in just 25 minutes before going a break up in the second.
But Sabalenka's fiery forehand eventually clicked into gear as she made a late charge to stay in the contest, breaking three times in a row to force a decider.
A third-set tie-break was required to separate the pair, but it was Sabalenka who came out on top to reach her first final since her Australian Open triumph in January.
Sabalenka is bidding to become just the second player to win three women's singles titles in Madrid after Petra Kvitova.
The two-time major winner said: "It's a super special place for me, I feel the support and today, honestly, if not for the people I would probably leave this court with a 6-1 6-1 [defeat] and be very sad."
The victory ensures Sabalenka remains world number two ahead of America's Coco Gauff.
- Medvedev retires from quarter-final

IMAGE SOURCE: GETTY IMAGES
Image caption: Lehecka (right) has reached his first ATP Masters 1,000 semi-final
The only men's singles match of the day came to an abrupt end when Daniil Medvedev retired early with an injury to his right leg.
Medvedev required a medical timeout after going 3-2 up in the opening set of his quarter-final against Jiri Lehecka of the Czech Republic.
The Russian third seed, who was the highest-ranked player left in the men's draw, returned to the court but was moving gingerly as Lehecka won the first set 6-4, at which point Medvedev decided to call it a day.
"It's never easy in a match like this," Lehecka told Sky Sports.
"If I were to choose the way how to win this match, it wouldn't be like that."
World number 31 Lehecka will play Felix Auger-Aliassime after the Canadian's last-eight opponent Jannik Sinner, the Italian top seed, withdrew with a hip injury.
Medvedev is the defending champion at the Italian Open, the next ATP Masters 1,000 tournament which starts on 8 May.



Ghana’s Corporate Illusion: Why We Celebrate Professional Titles More Than Natio...
Sam George, Armah-Kofi Buah, Phyllis Naa Koryoo and OPK among 1,568 lawyers call...
Visa scandal: 'Ampofo Ankrah’s suspension not enough; Kofi Adams must also step ...
Ghana’s BRICS bid part of strategy to diversify international partnerships — For...
'Let integrity, discipline guide your conduct' — Samson Lardi tells new lawyers
Labour Minister optimistic teachers will suspend strike by close of day
Dr Ato Forson urges MMDCEs to eliminate waste in public spending
KMA Boss refutes bribery claims amid tears at Abrepo Junction demolition
GRA summons Jamila Home management over alleged assault of revenue officer
To suggest FBI acted solely to execute Cyberhunt operations in Ghana will hurt f...
