Roger Federer must wait until 2019 for another chance to reach 100 career titles after semi-final defeat by Alexander Zverev at the ATP Finals.
Zverev, 21, tipped by many as a future Grand Slam champion, triumphed 7-5 7-6 (7-5) at London's O2 Arena.
On Sunday, he will face Novak Djokovic, who beat Kevin Anderson 6-2 6-2.
Zverev faced boos at the end of the match after he had - legitimately - stopped a point in the tie-break when a ball boy dropped a ball.
In scenes reminiscent of Naomi Osaka's victory speech at the US Open when her win was overshadowed by Serena Williams' outbursts, Zverev was left apologising to both the crowd and Federer after one of the biggest wins in his career.
"I apologised to Roger at the net already, he said it is OK and it is in the rules," the world number five said.
"I'm sorry this happened. I didn't mean to upset anybody."
- I hope ball boy doesn't have sleepless nights, says Federer
- Live scores, schedule and results
- Alerts: Get tennis news sent to your phone
'The Pretender' beats 'the King'
Former Wimbledon champion Boris Becker, commentating for BBC TV, had said before the match between 'the King and the Pretender' that he believed Zverev was a future world number one.
With three Masters titles to his name, the young German has yet to make his mark on the Grand Slams - although his French Open quarter-final this year was a breakthrough.
But now he will get the chance to win the season-ending title, which is second only to the Slams in terms of prestige.
There were moments when Zverev seemed to show a bit too much respect for Federer.
His body shot at the Swiss in the sixth game of the first set was half-hearted and cost him a point, while he volleyed a ball that was well on its way out of the court in the next game - as if not quite believing that the great Federer was able to hit long.
But he oozed confidence when it mattered the most, setting up three set points on Federer's serve in the 12th game.
Getting there had included a fantastic passing shot after he raced to Federer's drop shot, and the roar that followed said it all.
He sealed the set when Federer hit a forehand wide and then kept the momentum going early in the second set when he immediately held to love.
The German was never going to get it all his own way, with Federer setting up three break points of his own with a stunning forehand on the line, and taking the game when Zverev could only get a racquet edge to the Swiss' forehand.
But Zverev wasted no time in breaking back when a Federer forehand went wide and from then on they matched each other to set up the tie-break.
After setting up two match points, Zverev sealed victory on the second one with a fantastic backhand that Federer could not get anywhere near.
Why was Zverev booed?
Zverev should have been beaming after one of the biggest wins of his career, yet looked emotional and ended up feeling "lost" in his post-match interview after some Federer fans jeered.
Presumably they felt the German had showed gamesmanship when he stopped play in the tie-break after the ball boy came on to the court, although the rules state the point must be replayed in such circumstances.
Former British number one Annabel Croft, who was conducting the on-court interview, scolded the crowd for their negative reaction.
"He was playing by the rules so I think you all have to be a little more respectful," she said.
BBC Sport presenter Sue Barker said she was "quite embarrassed" by the crowd's reaction, while colleague Tim Henman called it "disappointing".
"You have to play a let," added former Wimbledon semi-finalist Henman. "Once Federer understood what had happened, he accepted it."
Federer's wait for 100th title continues
After Federer sealed his 99th career singles title in front of a home crowd in Basel last month, all eyes have been on when the great Swiss player will reach triple figures.
His chance to get there in Paris at the start of November was ended in the semi-finals by world number one Djokovic and in London he has once again fallen just short.
He did, however, get closer this week than looked likely after his poor - and grumpy - performance as he lost his opening round-robin match to Kei Nishikori.
Time is not on Federer's side - with the Swiss having turned 37 in August - but the fact he won four titles this year, including his record-extending 20th Grand Slam title at the Australian Open, means few would bet against him reaching the milestone very soon.
BBC tennis correspondent Russell Fuller
Winners having to apologise for winning is becoming a habit in 2018.
The atmosphere was not nearly as hostile as that faced by Naomi Osaka at the US Open, but Zverev was subjected to whistles and jeers by a significant minority of the crowd.
The decent majority, and the sure-footed intervention of interviewer Annabel Croft, helped salvage the situation.
Adulation can know no bounds, and it is by no means the first time devotion to Federer has overstepped the mark.
The match itself was a triumph for Zverev. He looked extremely assured throughout as he broke Federer to love to win the first set, and then held his nerve in the second set tiebreak.
The 21-year-old has won all four tie-breaks he has played this week.