Maria Sakkari beat US Open champion Coco Gauff in a rain-hit match to set up an Indian Wells final against world number one Iga Swiatek.
Greece’s Sakkari let a 5-2 second-set lead slip but regrouped to beat third seed Gauff 6-4 6-7 (5-7) 6-2.
Rain held up play in California in the middle of the first set and again at the start of the second.
Poland’s Swiatek earlier needed just 65 minutes to beat Ukraine’s Marta Kostyuk 6-2 6-1.
Sunday’s final will be a rematch of the 2022 showpiece, which Swiatek won in straight sets.
Swiatek is bidding for her second title of the year after winning the Qatar Open, while Sakkari is aiming for her first.
While Swiatek is yet to drop a set in this year’s tournament, Sakkari had to go the distance against American Gauff, missing three match points in the second set.
Gauff dominated the resulting tie-break and broke in the first game of the third set before Sakkari regrouped.
The ninth seed immediately rescued the break and won four games in a row to take a 4-1 lead.
Gauff served to stay in the match at 5-2 down but, despite saving another match point, was unable to hold off Sakkari.
“I don’t want to disrespect Coco but it would’ve been amazing if this match was over an hour ago,” Sakkari joked afterwards.
“Coco is such an amazing opponent. I’m just so happy I’m in the final once again here.”
In the men’s draw, defending champion Carlos Alcaraz plays Australian Open champion Jannik Sinner in the last four from 19:00 GMT, followed by last year’s runner-up Daniil Medvedev against home hope Tommy Paul in the second semi-final.