Juan Martin del Potro upset two-time defending champion Roger Federer to join the Swiss in the last four of the ATP World Tour Finals.
The Argentine's 7-6 (7-3) 4-6 6-3 victory means he and Federer qualify from Group B.
Federer will face Andy Murray on Sunday after Del Potro plays world number one Novak Djokovic.
The semi-final line-up was confirmed after David Ferrer beat Janko Tipsarevic 4-6 6-3 6-1.
It was a complicated qualification scenario that would have been simplified had Federer built on an impressive second set against Del Potro.
However, the Argentine had beaten Federer on home ground in Basel last month and showed the same form to defeat the Swiss in another arena he has dominated.
"It's a good effort by his side to get me twice in a row now," said Federer. "It's indoor tennis. He has a big serve, but still the surface plays somewhat slow and I expect myself to get more returns into play.
"But the important thing is to move on right now, not talk too much about this match for me. Mentally, it's important to look ahead and rest because it's a quick turnaround."
Del Potro said: "I didn't think about the semis or trying to qualify for the next round. I was just thinking about my match, doing the same things like Basel.
"In the end, I was thinking maybe this could be my last service game of the year if I lose against him. So I put all my concentration when I was serving and that helped me to make fantastic first serves and many aces."
Del Potro survived the first moment of danger by fending off three break points in game eight, and went on to control the tie-break as Federer's radar deserted him completely.
An early break in the second was enough to get six-time champion Federer back on level terms as he rolled through the opening eight points, but Del Potro was not done.
The 2009 US Open champion grabbed the advantage in game two of the decider, converting his only break point of the match and firing down 82% of his first serves.
Ferrer and Tipsarevic were both eliminated by the result, but the make-up of the semi-finals lies with them when they meet at 19:30 GMT.
In the doubles, Spain's Marc Granollers and Marc Lopez made it through to the semi-finals where they will meet Britain's Jonny Marray and Dane Freddie Nielsen at 18:00 GMT on Sunday.
The other semi-final will see Mahesh Bhupathi and Rohan Bopanna take on Leander Peas and Radek Stepanek, who knocked out Americans Bob and Mike Bryan 6-4 6-7 (6-8) 10-7.