Karolina Pliskova defeated Simona Halep 6-0 2-6 6-4 in a see-saw match to claim the last semi-final spot at the WTA Finals in Shenzhen.
The world number two ran away with the first set but dropped the second and trailed 2-0 in the decider.
But Wimbledon champion Halep, the fifth seed, then went completely off the boil as Pliskova pounced.
Czech Pliskova will face Ashleigh Barty of Australia in the last four.
👏👏 @KaPliskova defeats Halep in a thrilling third set, 6-0, 2-6, 6-4, at the Shiseido @WTAFinals Shenzhen pic.twitter.com/tuWcth4yNs
— WTA (@WTA) November 1, 2019
Earlier, defending champion Elina Svitolina ensured she remained unbeaten in the group stage after dispatching alternate Sofia Kenin of the United States.
The eighth seed had already been assured of a place in the semi-finals but she still battled hard for a 7-5 7-6 (10-8) win in two hours and 10 minutes.
Svitolina told the WTA: "Each time I step on the court I have to win. My parents raised me this way - that I have to fight for everything, I have to give 100% each time I play."
Svitolina will face seventh seed Belinda Bencic for a place in the final.