Lucie Safarova fought back to beat Serbia’s Ana Ivanovic and become the first Czech woman to reach the French Open final in 34 years.
The 13th seed trailed 5-2 in the first set but reeled off five straight games on her way to a 7-5 7-5 win.
She goes on to face world number one Serena Williams or 23rd seed Timea Bacsinszky in Saturday’s final.
“It is a dream come true. I cannot believe it,” said Safarova after converting a third match point.
“I started slowly but tried to keep up the level and play really aggressively because that was the only way to win.”
Safarova made the Wimbledon semi-finals last year, but is through to her first Grand Slam final.
The 28-year-old will try to match the achievement of her compatriot, Hana Mandlikova, who won the title in 1981.