Maria Sakkari beat defending champion Paula Badosa to reach the biggest final of her career at Indian Wells.
Greece’s Sakkari, who had previously won just two of her past 14 semi-finals, broke down in tears after overcoming the Spaniard 6-2 4-6 6-1.
She will face Iga Swiatek on Sunday, with the winner rising to number two in the world rankings.
Poland’s Swiatek beat Romanian Simona Halep 7-6 (7-6) 6-4 to register her 10th consecutive victory.
Sakkari hit 28 winners during the match against Badosa.
She has won one title on the WTA Tour – at the Morocco Open in 2019 – but found more consistency last year, reaching the French Open and US Open semi-finals.
Sakkari leads the head-to-head with Swiatek 3-1, but Swiatek won their most recent meeting at February’s Qatar Open.
Former French Open champion Swiatek fought back from a breakdown in both sets against Halep to reach the final.
She saved two set points in the tie-breaker before eventually clinching the opener, and overturning a 4-2 deficit in the second.
Swiatek reached the Australian Open semi-finals at the start of the year before lifting the title in Doha last month.
In the men’s draw, American Taylor Fritz set up a semi-final meeting with seventh seed Andrey Rublev.
Fritz beat Serbia’s Miomir Kecmanovic 7-6 (7-5) 3-6 6-1 before Russia’s Rublev powered past Grigor Dimitrov 7-5 6-2.
Rafael Nadal will meet rising Spanish teenager Carlos Alcaraz in the other semi-final.