Grigor Dimitrov came from a set down to beat Jack Sock 4-6 6-0 6-3 and reach the decider of the ATP Finals.
The Bulgarian, ranked three places above world number nine Sock, gave up a 3-1 lead to lose the first set to the American, who surprisingly won the Paris Masters during a resurgent end to 2017.
But, after edging in front during a tight third set, it is Dimitrov who will contest the final against David Goffin.
The Belgian shocked heavy favourite Roger Federer in Saturday's first semi-final at the O2 Arena.
Both Dimitrov and Goffin will now feature in the final match of the ATP Tour calendar in London for the first time in their careers.
Dimitrov took charge of proceedings early on, playing a brilliant point by coming in on Sock's backhand, pushing his opponent out of position and then volleying into open court to earn the first break.
Sock saved a break point before holding with an ace down the T to get to 3-1 and then broke back when Dimitrov netted a rally ball.
And the momentum then swung as Sock moved through the gears, holding with newfound ease and drawing a long forehand error to see Dimitrov broken again in the ninth game.
The American brought up two set points and took the first of them when Dimitrov dragged an attempted backhand return from a second serve into the net.
The resilience that allowed Sock to come from behind and win the first set was nowhere to be seen in the second.
Dimitrov held confidently and then broke when Sock mishit a rally ball. He sent another careless forehand long two games later to give up a double break.
Sock came to the net and threw in some sliced drop shots during a rushed final service game in the second set, but then netted successive rally balls to gift Dimitrov an unexpected bagel.
It soon became apparent that Dimitrov would not have the third set all his own way, though, as Sock composed himself and began to attack his opponent's awkward slice with heavier forehands.
And the set duly stayed on serve until the eighth game, when an unfortunate net cord for Sock was followed by two double faults in quick succession that offered Dimitrov two chances to break.
The Bulgarian took the second of them with an inch-perfect forehand down the line to serve for a place in the final, which he secured with his fourth match point.
Dimitrov  bt Sock  4-6 6-0 6-3
Dimitrov – 25/33
Sock – 20/37
Sock – 3/5
BREAK POINTS WON
Dimitrov - 5/8
FIRST SERVE PERCENTAGE
Dimitrov – 64
Sock – 62
PERCENTAGE OF POINTS WON ON FIRST/SECOND SERVE
Dimitrov – 68/52
Sock – 62/45
Dimitrov - 91
Sock – 77
|Rockets star Paul dealing with hamstring injury|
|Does he only care about his hair? - Denmark coach Hareide slams Pogba, France|
|Rockets push Warriors to brink of elimination|
|World number 84 Kicker suspended for match-fixing|
|WATCH: Paul shimmies in Curry´s face|
|Copa Libertadores Review: Estudiantes into last 16 after thrilling win over Nacional|
|Ronaldo: Cristiano and Neymar would be good together at Madrid|
|Rockets honour Santa Fe victims, first responders at game five|
|Real Madrid rejected €150m offers for Asensio – agent|
|Marshall, Baldwin react strongly to Trump´s comments on NFL anthem stance|
|Nabura handed six-week ban for wild kick|
|Pedroia to return for Red Sox on Friday|
|Warriors´ Iguodala ruled out for game five against Rockets|
|Na leads as Spieth makes solid start at Colonial|
|James Harden, LeBron James headline 2017-18 All-NBA first team|
|Manchester United target Fred to decide future after World Cup|
|´Incredible´ Salah is like Messi, says Ronaldo|
|Salah a big candidate for Ballon d´Or - Muller|
|Message from coach keeping Masters champion Reed grounded|
|Anybody can really win it - Seles feels French Open is wide open this year|
|Mambo number 5! - Non-league star channels Lou Bega hit|
|Pakistan to stop wearing smart watches after ICC intervention - Hasan|
|Saha hails ´great man´ Ferguson as legendary Man Utd boss continues recovery|
|Emery´s depth of knowledge impressed Arsenal´s Gazidis|
|Conceicao extends Porto contract|
|Lomax impresses as Saints overrun Tigers|
|McIlroy in contention at Wentworth as Bjerregaard sets the early pace|
|Bad light calls time on Thiem, Wawrinka out in Geneva|
|Garitano in, Canales out at Real Sociedad|
|Caparros accepts new role at Sevilla|
|Pliskova downed by Larsson after drawing Serena in Paris|
|They´re using the anthem as fake patriotism - Warriors coach Kerr critical of NFL|
|Lyon win record fifth Women´s Champions League title|
|French Open 2018: Doing the unthinkable - the men most likely to topple Nadal|
|French Open 2018: How can Rafael Nadal be stopped?|
|Steve Smith named as marquee player for Global T20 Canada|
|Can Emre play? Yes he Can... and so can Milner|
|Liverpool working to help fans after flight cancellations|
|Abbas and Hasan torment sorry England|
|Xavi ´thrilled´ to sign two-year Al Sadd extension|
|Holtby extends Hamburg contract despite relegation|
|Nadal begins French Open defence against Dolgopolov|
|Serena drawn to play Pliskova in French Open first round|
|FA condemns assault of match official|
|Bologna confirm Donadoni departure|
|Yates lead halved in Giro d´Italia|
|Connacht turn to Friend|
|Scotland lose injured Dunbar for June tour|
|Spalletti in ´no rush´ to sign new Inter deal|
|Ricciardo and Red Bull dominate Monaco practice|
|Mauricio Pochettino signs new deal with Tottenham|
|Pochettino signs new deal with Tottenham|
|Istanbul to host 2020 Champions League final|
|Williams sisters given French Open wildcard|
|President Donald Trump praises NFL´s anthem stance|
|Buffon in consideration for Italy call, says Mancini|
|Roberts injured in Broncos win against Eels|
|Atletico complete move for Villarreal star Rodri|
|Ozil, Gundogan not playing politics, says Low|
|Valencia complete permanent Kondogbia signing|
|Fairytale ending could be in the script, says World Cup-bound Vardy|
|Milwaukee police apologise to Bucks´ Brown over tasering|
|Television, crosswords and Nintendo - Koscielny´s remedy to World Cup heartache|
|World Cup not an audition for Barca or Madrid, says Germany star Werner|
|Neck injury rules Kohli out of Surrey stint|
|Nine LaLiga titles and 674 club games under nine managers - Iniesta in Opta numbers|
|49ers Enterprises takes stake in Leeds United|
|Manchester United should sell Pogba if he´s unhappy - Scholes|
|Andres Iniesta´s nine LaLiga triumphs with Barcelona|
|Andres Iniesta: The footballers´ footballer|