Debutante Dominika Cibulkova will meet world number one Angelique Kerber in Sunday's final at the WTA Finals in Singapore.
The Slovak showed great determination to beat Russian Svetlana Kuznetsova 1-6 7-6 (7-2) 6-4.
Kerber, the Australian Open and US Open winner, was too strong for defending champion Agnieszka Radwanska.
The German dominated for a 6-2 6-1 victory over the Pole to make it six wins apiece in their head-to-heads.
"It's just amazing to be here,'' said Kerber, who is playing in the event for the fourth time.
"It's been an incredible 12 months. I've been really working at being focused, being calm and being positive on court and this is the biggest improvement I've made."
After a disappointing first set, in which Cibulkova trailed 4-1 after being broken twice in her first three service games, the world number eight showed far more intensity in the second set.
She improved her first-serve percentage dramatically from 42% to 79% with Kuznetsova, who was in superb form in the opening set, happy to sit back and wait for any opportunities.
Cibulkova, making her first appearance at the elite eight-player event, squandered chances to secure the second set while serving at 5-4 and 6-5 but in the tie-break she recovered quickly to set up four set points and level the match.
Kuznetsova, 31, took a 10-minute break at the end of the second set to change her kit but while it initially did not appear to unsettle Cibulkova, who broke to go 2-0 up, she again was unable to take advantage of the break.
Two-time Grand Slam tournament winner Kuznetsova won the next four games to lead 4-2, only for a gutsy Cibulkova to roar back with four straight games of her own to clinch a place in the final.