Caroline Wozniacki battled back to beat Angelique Kerber 2-6 6-4 7-5 and line up a showdown with Maria Sharapova in Sunday's BNP Paribas Open final.
Dane Wozniacki had to overcome a set and break deficit, having trailed Kerber 2-6 0-2 in their Indian Wells semi-final.
Sharapova enjoyed a more comfortable 6-4 6-3 win over Maria Kirilenko.
The Russian 25-year-old will now climb to number two in the world when the WTA Tour rankings come out Monday.
Eighth seed Wozniacki, 22, had to show her mental toughness against fourth seed Kerber in a rollercoaster tie involving 14 service breaks, including seven in the final set of a match that lasted two hours and 31 minutes altogether.
The 2011 champion said: "I have been running and grinding and playing really well this week. I have reached a lot of balls and felt comfortable."
In contrast, number two seed Sharapova eased to a straight-sets victory against Kirilenko, saving all six break points she faced and breaking her compatriot three times from 11 opportunities.
The 2006 champion Sharapova said: "The first set was a little shady; the second set was much better. Today I was happy that I did a few things much better than I had to."