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
|Pochettino pledges to protect Kane|
|Federer relieved to ´hang tough´ in Cincinnati|
|De Bruyne injury: Can Foden or Diaz replace Man City playmaker?|
|Furyk confident as Team USA takes shape|
|Neymar´s behaviour deserves praise, Tite claims|
|Scherzer, Harper lead Nationals past Marlins|
|Djokovic and Federer join Cilic, Goffin in Cincinnati semis|
|Federer outlasts recovering Wawrinka|
|WATCH: Djokovic wins match, loses car|
|Bolt arrives in Sydney for A-League trial|
|Red-hot Bertens beats Svitolina, Halep marches on|
|Snedeker preserves Wyndham lead|
|Halep hits back to torment Tsurenko|
|Raonic fails to break Djokovic stranglehold|
|Emery seeks more ´demanding´ Ozil|
|CAF Champions League Review: Wydad, Al Ahly & TP Mazembe qualify|
|Stephen Curry wants to finish his career with Warriors|
|Hazard among Europe´s best but can improve, says Sarri|
|Tigers boost top-two hopes, Giants close in on fourth|
|Birmingham City 0 Swansea City 0: Monk´s men held despite dominance|
|Inter taking legal action against Tebas over Modric transfer comments|
|Serie A transfer round-up: Zaza joins Torino, Parma sign Gervinho|
|Roma chief Pallotta makes light of De Laurentiis claim|
|Federer starts double-header by seeing off resilient Mayer|
|Ospina joins Napoli on loan from Arsenal|
|Klavan completes Cagliari switch|
|Djokovic holds out against Dimitrov as Raonic awaits|
|New dates confirmed for postponed Serie A fixtures|
|Halep breezes past Barty to set up Tsurenko clash on same day|
|Olesen unable to capitalise on strong start as Jamieson, Waring go clear|
|Hoffenheim tie Kramaric to four-year deal|
|Mina to miss Southampton clash while Gomes is ´weeks´ away|
|Barcelona coach Valverde dismisses Pogba speculation|
|Valverde not prioritising Champions League over defending Barcelona´s LaLiga title|
|Allegri thanks outgoing Juventus icon Marchisio|
|Pants display from Beef? Johnston forced into change of trousers in Sweden|
|Tour champion Thomas has Welsh velodrome named in his honour|
|Gloucester surprised and disappointed by RFU´s swift Cipriani charge|
|Storm skipper Smith´s back injury not ´too serious´|
|Spurs fixture switch doesn´t appeal to Guardiola|
|Brazil call up Andreas Pereira & Arthur but omit Man City stars|
|Mbappe returns to PSG squad, Kehrer set for debut|
|No Messi in Argentina squad as Simeone wins first call-up|
|England man Roy embarrassed by self-inflicted facial injury|
|Atletico Madrid fined for breaching third-party regulations|
|Cipriani charged by RFU after common assault conviction|
|No contact, no negotiation - Leonardo denies AC Milan deal for Milinkovic-Savic|
|Kovacic set for Chelsea debut against Arsenal|
|Fury´s father restrained as Wilder crashes Pianeta weigh-in|
|Kohli and Bumrah fit for win-or-bust Test|
|Stokes ready and desperate to help England, says Root|
|Salah, Mane and Firmino not in competition says Klopp|
|Darmian staying at Manchester United, says Mourinho|
|Guardiola cites fatigue as factor for stricken De Bruyne|
|Kovac approves Rudy departure from bloated Bayern midfield|
|Klopp insists no player leaves without his approval amid Klavan rumours|
|Real Madrid complain to FIFA over Inter´s alleged Modric approach|
|Mourinho ´has never been so happy´ with unsettled Pogba|
|Manly implode amid Barrett uncertainty, Storm´s Smith injured|
|Sarri certain Hazard is staying at Chelsea|
|Liverpool, Champions League, Manchester derby - The matches De Bruyne will miss due to injury|
|Campbell joins Frosinone from Arsenal on permanent deal|
|Schalke sign Lille´s Mendyl to end left-back hunt|
|Stokes back in England team as Curran drops out|
|Ronaldo doesn´t guarantee Juventus the title, warns Allegri|
|Tuchel keen to guide PSG star Mbappe after World Cup heroics|
|Yuri: I can see Neymar joining Real Madrid|
|Milan pounce for Castillejo as Bacca joins Villarreal permanently|
|De Bruyne to miss three months for Manchester City|
|Manchester City talent Arzani completes Celtic loan|