Germany's Alexander Zverev produced a superb performance to defeat Swiss superstar Roger Federer in straight sets to book his place in the final of the ATP Finals at the O2 Arena in London.
Zverev and Federer went back and forth, holding serve in each of the first 11 games before the 21-year-old German finally broke Federer to love in game 12 to claim the first set 7-5.
READ MORE: Djokovic confirms controversial Saudi match is off after Nadal injury
Federer, 37, came storming back early in the second set to break Zverev in game three to edge ahead. But the German broke back instantly to level the scores at 2-2 and keep the upper hand over the Swiss star.
The pair could not be separated through the rest of the set as they held serve all the way to a nerve-tingling second-set tie-break.
A Federer mistake at 4/5 saw him drop his racquet then volley into the net to give Zverev two match points. Federer saved the first, but a superb backhand volley from Zverev converted the second to give the German a huge victory.
The match lasted 95 minutes and saw Zverev level the head-to-head results between the pair at 3-3 as he surged into the final of the tournament.
The German will now face the winner of the second semi-final between Serbia's Novak Djokovic and South African Kevin Anderson.