Paula Badosa will face Victoria Azarenka in the Indian Wells final after upsetting Ons Jabeur on Friday.
Spain's Badosa, playing the tournament for the first time, defeated 13th seed Jabeur, one of the most in-form players on the Tour this year, 6-3 6-3.
Azarenka came from a set and break down to beat Jelena Ostapenko 3-6 6-3 7-5.
The 32-year-old Belarusian will aim to become the first woman to win the tournament three times after victories in 2012 and 2016.
Jabeur saved five match points before 21st seed Badosa sealed the win when the Tunisian hit a backhand wide.
Jabeur, who will move into the world's top 10 for the first time on Monday, struggled to take her chances against Badosa, converting only one of 10 break points.
Badosa, 23, will now look to seal her second WTA Tour title after victory in Belgrade in May.
- Indian Wells: Tsitsipas and Zverev suffer shock quarter-final defeats
- 'The biggest win of my career' - Britain's Norrie into Indian Wells semi-finals
Former world number one Azarenka will be aiming to win her first title of 2021 in Sunday's final after a valiant comeback against Latvia's Ostapenko.
"I thought the most important thing was my fight, that I can be really proud of," Azarenka said.
"Overall, she was playing incredible in the first set. I was just trying to find opportunity, create opportunity, for me to get back into the match, to take a little bit more control in the match, really fight for every ball."
- 'You don't wanna be like me': The brand new series of hit comedy Dave is streaming now
- Every golden age has a dark side: Paris is at breaking point in this tense crime drama