Sloane Stephens battled back from dropping the first set to love against Karolina Pliskova to reach the final of the BNP Paribas WTA Finals.
The sixth-seeded American will meet Elina Svitolina for the title after beating Pliskova 0-6, 6-4, 6-1 in Singapore.
The Czech was quickly into her stride, coasting through the opening set in 31 minutes, and continued her dominance by taking the first two games of the second.
But then the fightback started as Stephens reeled off the next three games before Pliskova broke back to level at 3-3.
Stephens broke back immediately and served out to take the set 6-4 and level the match.
The deciding set started with a pair of breaks but then Stephens took over, winning the next five games to secure victory in two hours and 27 minutes.
“I came out here a little bit nervous, and I wasn’t really feeling the ball,” Stephens said. “Obviously, I knew playing Kaja [Pliskova] was going to be a really tough match. I mean, when you say you’re going to ‘give someone a lesson’ – she was absolutely working me today.
“I had a bit of an adrenaline dump after I finally won one game – I was really fired up, so I was like ‘come on, let’s do this. I can win one game, maybe I can win two, then three.’ And I just started to feel the ball a little better.
“Again, all credit to her. I just tried to stay in it, and get as many balls back as I could. I’m just really proud of my fight today.”
Earlier, Svitolina reached the biggest final of her career as she overcame Kiki Bertens in three sets.
The No.6 seed wore down Bertens to advance with a 7-5, 6-7 (5), 6-4 victory in two hours and 38 minutes.
Svitolina broke in the fourth game to take a 3-1 lead, but Bertens immediately broke back before the Ukrainian secured the opening set 7-5 on her first set point.
Bertens battled back as she broke in the opening game of the second set but Svitolina took the 10th game to make it 5-5 before taking the set into a tie-break and Bertens levelled the match. The pair shared breaks to start the third set before Svitolina secured the decisive break at 2-1 and served out to win the longest match of the tournament.
◆ Roger Federer is one match away from a fourth straight Swiss Indoors title after hitting top form on home soil in Basel. The 37-year-old had scrapped his way into the last four and was expected to be given a tough test by seventh seed Daniil Medvedev but Federer needed only 64 minutes to win 6-1, 6-4.
Federer is bidding for a ninth title in his home city and would surpass his run from 2006-9 by making it 20 successive victories if he can triumph in the final.
He will face a surprise package in Romania’s, Marius Copil, who is having the best week of his career and claimed his best ever victory by defeating second seed Alexander Zverev 6-3, 6-7 (6), 6-4.
Kevin Anderson and Kei Nishikori both boosted their hopes of qualifying for the ATP Finals by making the final of the Erste Bank Open in Vienna.
Anderson can clinch his place at the tournament for the first time aged 32 by winning the title on Sunday after a 6-3, 3-6, 6-4 victory over Fernando Verdasco.
Nishikori is making a late run after injury problems at the start of the season and he was a more comfortable 6-4, 6-3 winner against qualifier Mikhail Kukushkin.