Aryna Sabalenka, the defending Madrid Open winner, rallied from a set and a break down to defeat Elena Rybakina and go to Thursday’s final.
Belarus’ second seed won 1-6, 7-5, 7-6 (7/5) and will face world number one Iga Swiatek on Saturday in a rematch of last year’s final.
Swiatek earlier defeated American Madison Keys 6-1, 6-3.
Daniil Medvedev, the third seed in the men’s draw, quit from his quarter-final match against Jiri Lehecka due to injury.
Kazakh Rybakina crushed a below-par Sabalenka in the first set, breaking twice, but encountered significantly stiffer fight in the second after going up a break in the third game.
Sabalenka, a two-time Australian Open champion, applied enormous pressure to the fourth seed’s serve and eventually cracked it, bringing the match level at 4-4.
Rybakina responded quickly but appeared flustered when serving for the match, and world number two Sabalenka broke again for 5-5 before winning the next two games to force a deciding third set.
Before the tie-break, the players swapped holds with only one break point reached — Sabalenka retaining her lead at 6-5.
Sabalenka, 25, clinched her victory with a normally powerful serve that Rybakina couldn’t handle.
The big-hitter had lost three of her previous four meetings with the 24-year-old, but she triumphed when they faced on clay for the first time.
“I don’t know how, but somehow I was able to stay alive in the second set,” said Sabalenka, aiming for a third Madrid Open title in her third final.
“It was a tough match, she’s a great player, it was incredible tennis tonight.”
The big-hitter had lost three of her last four clashes against the 24-year-old but emerged triumphant as they met on clay for the first time.
“I don’t know how, but somehow I was able to stay alive in the second set,” said Sabalenka, aiming for a third Madrid Open title in her third final.
“It was a tough match, she’s a great player, it was incredible tennis tonight.”
Rematch
Swiatek has a 6-3 record against Sabalenka but in their only match in the Spanish capital, the latter triumphed in three sets a year ago to claim the title.
Dominant on clay, Swiatek barely put a foot wrong against Keys, making just eight unforced errors in the match to leave the 29-year-old American with virtually no chance.
“I’m really happy that I had such a solid game today,” Swiatek said on court after reaching her 11th WTA 1000 final.
“Madison is an amazing player with a really fast game and a big serve, so I wanted to focus on myself and I’m happy I was focussed.”
The top seed, triumphant at Doha and Indian Wells, started in unforgiving form, taking the first set in 31 minutes.
Keys was more competitive in the second but Swiatek took it with two breaks.
Medvedev hurt
Russia’s Medvedev battled through the first set against Lehecka with an apparent upper thigh issue, eventually losing 6-4 before quitting.
The Czech has advanced to his first Masters 1000 semi-final, where he will face Felix Auger Aliassime, who received a walkover after top seed Jannik Sinner withdrew Wednesday due to a hip ailment.
“If I were to choose the way how to win this match, it wouldn’t be like that,” Lehecka stated with a grin.
Medvedev had an off-court medical time-out following the fifth game, which included all holds of serve, and when he returned, he plainly had difficulty moving freely around the court.
The world number four saved two break points to maintain a 4-3 lead as Lehecka struggled amid obvious pain.
The Czech, who defeated Rafael Nadal on Wednesday, settled down and pounced on Medvedev’s mistakes to break emphatically in the ninth game for a 5-4 advantage.
Medvedev won only four of the final 16 points before calling it a night, disappointing spectators. The other men’s quarterfinal, scheduled for Thursday, was canceled due to Sinner’s withdrawal.
The 28-year-old Medvedev is the defending champion at the Italian Open, which begins next week, while the French Open, the season’s second Grand Slam event, starts in just over three weeks.
“It would be good to come back (to Rome) after winning last year, but (I) just need to see what it is, because right now I basically don’t know if it’s very serious, just serious, or not serious — no idea,” Medvedev was quoted as saying by reporters.
Taylor Fritz will meet Andrey Rublev in the other semi-final on Friday, after the Russian defeated hometown favorite Carlos Alcaraz on Wednesday.