Alexander Zverev reached the final of ATP Finals for the first time in his career by upsetting Roger Federer in their last-four clash on Saturday.

The 21-year-old, who did not make it out of the round robin on his only previous appearance, put on a fantastic display at London's O2 Arena to triumph 7-5 7-6 (7-5) over the six-time champion.

Federer had been chasing his 100th title on the ATP World Tour but will now have to wait until 2019 to bring up his century after suffering a third career defeat to Zverev, levelling up the head-to-head record between the two players.

Zverev becomes the first German since Boris Becker in 1996 to contest the season-ending final, where he will meet Novak Djokovic or Kevin Anderson.

For Federer, the defeat represents a second year in a row in which he has been eliminated in the semi-finals.

Both players were totally dominant on their own serve early on and the first break point did not arrive until the 12th game, when Zverev earned three by racing into a 0-40 lead.

A superb winner down the line from the German was sandwiched between two forehands into the net from Federer, and a wayward shot by the Swiss wrapped up the set for Zverev.

Federer's frustrations were eased by a first break in the third game of the second set, but Zverev was immediately back on terms after the world number three sent a backhand wide at the end of a lengthy rally.

Zverev rode that momentum to win the next to love and Federer had to battle back from 0-30 down to hold for 4-4, before taking the set to a tie-break.

A moment of controversy arose when Zverev stopped playing after a ballboy dropped a ball on court with Federer 4-3 up.

The point was replayed, much to the annoyance of sections of the crowd, and Federer fired into the net before the first mini-break of the shoot-out sent Zverev 6-4 up and he clinched his final berth with his next serve.