Teenager Bianca Andreescu has become the first wildcard to reach the women's singles final at Indian Wells.
The 18-year-old, who was outside the top 150 players at the start of 2019, beat Elina Svitolina in three sets.
The Canadian will face reigning Wimbledon champion Germany's Angelique Kerber, 31, in Sunday's final.
Andreescu beat 24-year-old Svitolina 6-3 2-6 6-4, while Kerber, ranked eighth in the world, saw off Swiss Belinda Bencic, 22, in straight sets.
Andreescu, who is now ranked 60th in the world after starting the year at 152, had also claimed a victory over former world number one Garbine Muguruza on her way to the final.
"I really need a moment to soak this all in. This is just so incredible," she told the California crowd. "This past week has been a dream come true."
Svitolina started the stronger in the first meeting between the two players, finding herself 3-0 up in the opening set.
But Andreescu fought back, eventually winning 26 of the last 35 points to take the set.
It increases the teen's win-loss record for the year to 27-3 across all levels.
"I went for it. Like I always say, I went for my shots," Andreescu added. "It was a crazy match. It was a roller coaster. I'm really happy I pulled through."
Kerber ended Bencic's 12-match WTA winning streak on Friday 6-4 6-2, to set up her meeting with Andreescu.
BBC tennis correspondent Russell Fuller at Indian Wells
Andreescu started the year ranked 152 in the world. She is now on the verge of the top 30.
A final in Auckland, and a semi-final in Acapulco preceded this run - not to mention winning an event on the ITF circuit and qualifying for the Australian Open.
The 18-year-old was cramping and looked shattered in the closing stages, but still managed to close out a 10-minute final game on her fourth match point with a smattering of drop shots.
She seems remarkably assured both on court and in interviews, and looks to have a game for all seasons, and for all surfaces.