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.
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."