David Goffin caused a semi-final upset at the ATP Finals on Saturday as he added the scalp of Roger Federer to that of Rafael Nadal.
Goffin did not look like repeating his win over Nadal early on at the O2 Arena but the Belgian surged back from a set down to triumph 2-6 6-3 6-4 and claim his first ever victory over world number two Federer.
Federer raced through the first set in just 33 minutes and, given his 6-0 record against Goffin, looked strong favourite to progress.
However, it was not to be as – for the second day running – Goffin mounted a sensational comeback to set up a meeting with either Grigor Dimitrov or Jack Sock, while extending Federer's wait for a seventh title at the end-of-season event.
Five times Federer fashioned a break chance in the opening game and, although Goffin battled hard to save four, there was nothing he could do with the final one as the Swiss moved ahead – the seventh seed sending a backhand well beyond the baseline.
The Wimbledon champion gained a double break in the fifth game thanks to two sublime backhands down the line, Federer's groundstrokes working like clockwork as he raced into a 4-1 lead.
He wasted his first set point as Goffin – playing with strapping on his left knee – battled bravely, but in Federer's fourth service game the 1-0 lead was secured, the 36-year-old comfortably holding to love.
Amazingly the anticipated march into Sunday's final failed to materialise, though, as Goffin dug deep to level the match in style.
He raced into a 3-0 lead by breaking Federer in the second game, only the third time he has lost his serve during the tournament in London.
Federer did apply pressure on his opponent but all too often his previously perfect groundstrokes found the net, Goffin targeting the Swiss' forehand and enjoying some success.
Anyone who made Federer favourite in the decider was soon beginning to rue their decision as Goffin again upped his game, and his illustrious rival struggled to stay with him.
Game three proved pivotal as Goffin – who will lead Belgium at next weekend's Davis Cup final against France – found himself with two break chances.
Federer saved the first but could not halt Goffin's momentum and he took a 3-1 lead.
He then only dropped one point on serve to round out a memorable victory that ensures a surprise victor in London.
Goffin  bt Federer  2-6 6-3 6-4
Goffin – 20/27
Federer – 28/37
Goffin – 7/1
Federer – 7/3
BREAK POINTS WON
Goffin – 2/3
Federer – 2/11
FIRST SERVE PERCENTAGE
Goffin – 59
Federer – 61
PERCENTAGE OF POINTS WON ON FIRST/SECOND SERVE
Goffin – 73/58
Federer – 74/57
Goffin – 87
Federer – 83
|Mahomes stars again as Chiefs crush Bengals|
|Bolt must accept ´much less´ to join Mariners, says A-League chief|
|Klopp compares Liverpool to dog without favourite toy|
|Young leads Hawks to first win, Thunder fall in Westbrook´s return|
|Spalletti hits out at physical Milan – I had three players asking to be replaced|
|Cowboys, Ravens lose after missed kicks in final seconds|
|Hernangomez secures Nuggets´ win over Warriors with last-second block|
|Hasler returns to Manly on three-year deal|
|Sarri: Chelsea fans must respect Mourinho|
|Ronaldo learnt from Scholes – Pjanic praises Juventus star|
|CA dismisses spot-fixing claims|
|WATCH: Will Ferrell leads chants with LAFC fans|
|MLS Review: Galaxy on track for play-offs as Timbers, DC clinch spots|
|Elliott secures win at Hollywood Casino 400|
|Thunder´s Westbrook makes season debut against Kings|
|Saints beat Ravens after Tucker misses extra point|
|Rondo, Paul and Ingram banned after Lakers-Rockets fight|
|Saints QB Brees reaches another historic milestone|
|Biglia: VAR should have checked Nainggolan tackle|
|Gattuso not blaming Donnarumma for derby defeat|
|Seventh in Mexico will secure Hamilton´s fifth world title|
|Rooney fires DC United into MLS play-offs|
|Alonso slams ´amateur´ F1 rivals after latest crash|
|Spalletti fears lengthy Nainggolan absence|
|To the Max! Verstappen destroyed shoe fending off Hamilton|
|Icardi delight after Donnarumma error gives him another derby winner for Inter|
|Guardiola: Versatility the key for Stones|
|Vettel frustrated as mistakes continue to hamper title challenge|
|ECB refutes spot-fixing claims against England players|
|I thought we would do better - Hamilton queries Mercedes strategy|
|Inter 1 AC Milan 0: Icardi settles derby with dramatic late winner|
|Hamilton denied title party as Raikkonen wins in Austin|
|Patriots RB Michel out against Bears with gruesome knee injury|
|Kohli hails Rohit partnership after comprehensive India victory|
|Silva downplays his role after Everton super subs seal victory|
|Injured Bairstow out of final white-ball matches in Sri Lanka|
|Pliskova feeling confident after impressive start in Singapore|
|Big-hitting Imrul rescues Bangladesh in opening ODI|
|Leinster suffer late defeat at Toulouse, Newcastle snatch dramatic victory|
|Chargers pip Titans to dramatic London win|
|Everton 2 Crystal Palace 0: Substitutes Calvert-Lewin and Tosun clip Eagles´ wings|
|Thunderstorms push Andalucia Valderrama Masters into reserve day|
|Edmund masters Monfils to claim maiden singles title|
|Kohli and Rohit fire India to comprehensive ODI win|
|Manchester United didn´t play - David Luiz blasts Mourinho tactics|
|Svitolina out to silence ´haters´ in Singapore|
|Emre Can facing surgery on thyroid problem|
|Tsitsipas claims maiden ATP crown in Stockholm|
|Mariners boss Mulvey knows nothing of Bolt contract offer|
|WATCH: Vinicius Junior scores free-kick - then sees red!|
|Gronkowski ruled out of Bears clash|
|Khachanov enjoys home comforts with comprehensive Kremlin Cup win|
|Isner wants Wimbledon tie-break rule named after him|
|Hummels lauds ´outstanding´ Lewandowski|
|Liverpool´s defensive improvement no accident – Gomez|
|Pliskova overpowers defending champion Wozniacki in Singapore|
|Marquez dislocates shoulder celebrating MotoGP title|
|Henry taking positives from opening Monaco defeat|
|A-League Review: Mariners held as Bolt considers move|
|Dominant Svitolina ends Kvitova hoodoo in Singapore|
|Pereira warns Juventus to expect ´pumped up´ Manchester United|
|D´Antoni backs NBA to ´sort out´ Lakers-Rockets brawl|
|Mixed feelings for champion Marquez after Dovizioso crash|
|Bolt offered contract by Central Coast Mariners|
|Anthony accuses Rondo of spitting after Lakers-Rockets brawl|
|Martial insists he has good relationship with Mourinho|
|Bautista to replace Lorenzo at Phillip Island|
|Emery wanted Lacazette at Paris Saint-Germain|
|Wallabies centre Hodge suffers fractured ankle|
|Koepka claims top ranking with CJ Cup win|