Ukraine's Anhelina Kalinina overcame Russia's Veronika Kudermetova to reach her first WTA 1,000 final, at the Italian Open in Rome.
Kalinina, seeded number 30, had served for the match at 5-3 in the second set but Kudermetova won 16 points in a row to force a deciding set.
Wimbledon champion Elena Rybakina faces Latvian 20th seed Jeu013cena Ostapenko in the second semi-final.
Kalinina, who is ranked 47 in the world and has never won a WTA Tour title, beat Beatriz Haddad Maia in a gruelling three hour 41 minute battle to reach the semi-final, only the second of her career.