Defending champion Katerina Siniakova overcame Maria Sharapova in a tense Shenzhen Open semi-final to set up a showdown with world number one Simona Halep.
Siniakova claimed the first of her two WTA singles titles at the hard-court event in China last year and will be back in the final on Saturday after beating Sharapova 6-2 3-6 6-3.
A battling Sharapova saved three match points, but was unable to deny an emotional sixth seed from the Czech Republic a hard-earned victory on Friday.
The vibrant Siniakova mixed up her game with great effect in the first set, working Sharapova around the court and unleashing rasping winners to break twice before serving out the set in assured fashion.
Sharapova showed the fighting qualities of a five-time grand slam champion to force a decider, opening up a 3-0 lead in the second set, which she wrapped up with a powerful serve followed by a forehand winner.
Siniakova got the breakthrough in the final set, the 21-year-old world number 47 firing a backhand winner down the line to lead 4-2 and showed her emotion after Sharapova drilled a forehand beyond the baseline.
Top seed Halep was beaten by Siniakova in the second round in Shenzhen 12 months ago and will get a chance to gain revenge after overcoming Irina-Camelia Begu 6-1 6-4 in an all-Romanian semi-final.
Begu was no match for her doubles partner, the 2015 champion combining a positive approach with great defence in a typically sprightly display as she builds momentum ahead of the Australian Open.
Halep has now won her last 11 matches against compatriots and will attempt to secure a first title since May on Saturday.