Sloane Stephens beat Karolina Pliskova to reach the final on her debut at the season-ending WTA Finals in Singapore.
The American world number six recovered from a poor start to win 0-6 6-4 6-1.
The match's momentum swung in the second set, with Czech Pliskova having won each of the first eight games before Stephens took 12 of the next 15.
Stephens, 25, will meet world number seven Elina Svitolina, who beat Dutchwoman Kiki Bertens to become the first Ukrainian to reach the final.
The turning point in the semi-final between Stephens and Pliskova was when the American broke in the third game of the second set. From there, the 2017 US Open champion did not look back.
It took Stephens 51 minutes to win a game, but she had the match wrapped up one hour and four minutes later.
"She was playing great tennis at the beginning and I just could not get a dent in her," the fifth seed said. "I just stuck to it and it was amazing to get the win."
Looking ahead to Sunday's final, she added: "It will be a great match, there is a reason she is in the final. I have had a great week and hopefully I can finish off in the right way."
The match was the ninth three-setter at the WTA Finals, which is the most since the round-robin format was introduced in 2003.
The earlier semi-final between Svitolina and Bertens was the longest match of the tournament, lasting two hours and 38 minutes.
The pair traded breaks early in the final set before the Ukrainian got ahead and served out to win the match 7-5 6-7 (5-7) 6-4.
Stephens and Svitolina won all three of their round-robin group games in Singapore.