Anastasia Pavlyuchenkova overcame top seed Maria Sharapova to reach the final of the Open GDF Suez in Paris.
Pavlyuchenkova ousted her fellow Russian 4-6 6-3 6-4 to book a date with either Italian Sara Errani and French home hope Alize Cornet on the final.
The world No 26 was trailing 3-0 and 4-1 before she saved two break points, going on to level after breaking world No 5 Sharapova's serve for 4-4.
But the opening set evaded her when she produced two unforced errors.
The 22-year-old regrouped and broke Sharapova in the first game of the second set, following up with a second break to level.
The pair traded breaks in the deciding set, with Sharapova going on to serve to try and level it at 5-5, but that proved beyond her as she double faulted to hand victory to her fellow Russian.
"I knew that I had to serve well because Maria has one of the best returns on the tour, probably," Pavlyuchenkova said. "I remember playing her like three or four years ago, she broke me a lot of times and that was the key for her to win."
As so often Sharapova's serve let her down and she gave up five double faults in the last set with a first-serve 48 percentage.
"I thought I started the match really well but, as the match continued, I stopped doing the things that really helped me in the beginning of the first set," she said. "I wasn't being aggressive, I wasn't in the court."