Defending champion Caroline Wozniacki was knocked out of the WTA Finals as Ukraine's Elina Svitolina booked her place in the last four in Singapore.
World number three Wozniacki, 28, knew only a straight-set victory would see the Dane progress from the group stage.
After taking the first set, she was a break up in the second but Svitolina, 24, recovered to win 5-7 7-5 6-3.
She joins Karolina Pliskova, who defeated Czech compatriot Petra Kvitova 6-3 6-4, in the semi-finals.
World number eight Pliskova, 26, claimed her first victory over Kvitova, 28, in four attempts.
The WTA Finals feature the world's top eight players - although injured world number one Simona Halep was replaced by Kiki Bertens - and two players progress from two groups of four to reach the semi-finals.
World number seven Svitolina celebrated wildly when she took a fifth set point to seal the second set as it ensured her own progress and ended Wozniacki's hopes, although the pair went on to play the longest match of the event so far at two hours 37 minutes.
"It's a big achievement for me," said Svitolina. "I'm playing great tennis now and have to stay positive and fight.
"I knew I had to win one set, I think that was the toughest challenge mentally. Caroline doesn't give you any free points but I pushed myself mentally.
"If someone had told me that I would win my group I would take it. I am very, very happy."
Players who progress from the group guarantee $650,000 (£506,000) in the lucrative end-of-season tournament.
The red group - featuring Sloane Stephens, Naomi Osaka, Angelique Kerber and Kiki Bertens - concludes on Friday.
Two-time Wimbledon champion Kvitova needed to win in straight sets to stand any chance of progressing.