London: Alexander Zverev came of age to beat Roger Federer 7-5, 7-6 (7/5) on Saturday and set up a title decider at the ATP Finals against either Novak Djokovic or Kevin Anderson.
The 21-year-old German, leading the charge of the new generation against the old guard, has flattered to deceive on the game's biggest stages but is now just one win away from the biggest title of his career.
Serve dominated the first set of a high-class match at London's O2 Arena, with neither player able to make serious inroads, Zverev sending down howitzers around the 140 miles per hour (225 kilometres per hour) mark.
Six-time champion Federer, 37, and third seed Zverev both showed a willingness to get to the net in a match featuring power and guile.
The Swiss veteran eventually faltered in the 12th game of the opening set, watching helplessly as Zverev zipped a magnificent passing shot past him down the line on his way to breaking to love.
The second seed regrouped and drew first blood in the second set, breaking in the third game with a thunderous backhand down the line that drew enormous cheers from the partisan crowd.
But the frustrated 20-time Grand Slam winner could not consolidate his position, losing the next game as Zverev levelled at 2-2.
The tie-break went with serve until the 10th point, when Federer netted a simple forehand at the net to hand Zverev two match points.
He saved the first but Zverev sealed the match on his own serve.
Zverev, who has three Masters series titles under his belt in his short career, is the youngest finalist at the event since Juan Martin del Potro in 2009.
In Saturday's later match, world number one Djokovic takes on South Africa's Kevin Anderson in a repeat of the Wimbledon final for the right to face the German in Sunday's final.
The Serbian top seed has stormed up the rankings in the second half of the year and is just two wins away from pulling level with Federer's record number of titles at the season finale.