Elena Dementieva beat world number two Ana Ivanovic 6-2 7-5 in the German Open to set-up an all-Russian final in Berlin against Dinara Safina.
Ivanovic, 20, who was broken five times, paid the price for making too many unforced errors against a player she has yet to beat in four contests.
In-form Safina beat Victoria Azarenka 6-4 6-1 in their semi-final.
The 13th seed beat Justine Henin in the third round before ending Serena Williams's 17-match winning streak.
Looking forward to the final, Dementieva said it was special to be playing her compatriot.
"It's going to be amazing to have a Russian final," she said.
"There is still time to get experience and match practice before Roland Garros"
"I enjoyed the semi-final, Ana is a great player and I really gave my best today. It is never easy playing against her, but I was really focused and I worked hard for every single point."
Ivanovic said: "I really felt good about the way I played. I went for too much too soon in the rallies against Dementieva.
"I felt good about myself and my shots but when I tried them, I didn't make them."
She added: "It is the first tournament on clay and everybody is trying to find their rhythm.
"There is still time to get experience and match practice before Roland Garros."
606: DEBATE
But the Belarussian appeared to be struggling with a knee injury in the second set, which severely hampered her movement, and Safina cruised to victory in just under one-and-a-half hours.
"She really played well and there was plenty of pressure from her returns," said Safina.
"I hung in there, she was cramping up in the second set which was unlucky for her.
"This is one of my best weeks ever.
"If someone had told me before the week I would be in the final, I would have given them half my prize money."