Unseeded Swiss player Stefanie Voegele upset second seed Sloane Stephens of the United States 6-7 6-4 7-5 in the quarter-finals of the Generali Ladies in Linz, Austria.
Stephens, the world No 12, led 5-2 in the final set but lost the next five games to slump to a shock defeat.
Stephens also let slip a 5-2 lead in the opening set before converting her ninth set point in the tiebreaker.
The 58th-ranked Voegele will play two-time former champion Ana Ivanovic in Saturday's semi-finals, after the Serbian third seed beat Slovakian seventh seed Dominika Cibulkova 6-2 6-4.
Voegele will be bidding to reach her first career WTA final.
Fourth-seeded Carla Suarez Navarro of Spain beat Kirsten Flipkens of Belgium 6-1 6-3. Suarez Navarro won the first eight points of the match and held serve throughout.
She will play top-seeded Angelique Kerber in the semis after the German world No 10 saw off unseeded Austrian Patricia Mayr-Achleitner 6-3 6-1.
That victory also secured Kerber the eighth and final place for the season-ending WTA Championships in Istanbul.
She joins Serena Williams, Victoria Azarenka, Agnieska Radwanska, Li Na, Petra Kvitova, Sara Errani and Jelena Jankovic in the WTA showpiece tournament.