Austria's Dominic Thiem is aiming to win his sixth title of the year at the ATP FinalsAustria's Dominic Thiem is aiming to win his sixth title of the year at the ATP Finals (AFP Photo/Daniel LEAL-OLIVAS)
The Austrian fifth seed saw off the big-serving German 7-5, 6-3 after Greece's Tsitsipas, making his debut at the tournament, had earlier beaten Federer 6-3, 6-4.
Thiem is playing in his fourth ATP Finals but during his first three trips to the season finale, he won only three matches and never advanced out of the group stage at the O2 Arena.
Zverev landed 75 percent of his first serves but Thiem was tougher in the big moments, breaking in the 12th game of the opening set and in the sixth game of the second set.
The Austrian also saved all four break points on his racquet.
Germany's Zverev, who beat Novak Djokovic in last year's final, went toe to toe with Thiem in a relatively uneventful first set but served a double fault to lose the opener 7-5.
The seventh seed, 22, regrouped and settled back into his serving rhythm at the beginning of the second set but was broken again to trail 4-2.
Thiem, looking unflustered, fended off a couple of break points in the following game and served out to take the match, winning with a forehand down the line.
"This is a big, big dream coming true for me, it is one of the biggest and most prestigious tournaments of the whole year and I'm getting the chance to play the final," said Thiem.
The 26-year-old, who reached the final of this year's French Open, has been considered a clay-court specialist but joked after winning indoors in Vienna last month and now reaching the final in London he was becoming a "big, big fan of faster hard surfaces".
- Tsitsipas snuffs out Federer -
Earlier, Tsitsipas, 17 years younger than Federer, ended the 38-year-old's hopes of securing a seventh year-end title.
Federer was unrecognisable from the player who dominated Djokovic in his final round-robin match, struggling on serve and hitting a total of 26 unforced errors compared with just five against the Serbian.
But Tsitsipas belied his years with a performance full of confidence and grit, saving 11 out of 12 break points during the match.
"I'm so proud of myself today, a great performance and once again the people were great," he said.
"I really enjoyed myself on the court and sometimes in matches like these you wonder how you recover from difficulties and break point down."
Tsitsipas, ignoring loud support for Federer, broke the Swiss at the first time of asking, taking advantage of two missed overheads.
The Greek was forced to dig deep in a dramatic 13-minute final game of the first set in which he saved two break points and needed seven set points to close it out 6-3.
Federer was in deep trouble when Tsitsipas broke him to love in the third game of the second set but he finally made a break point count to level at 2-2.
Undaunted, Tsitsipas, dominating rallies from the back of the court, broke again straight away with a forehand cross-court winner for a 3-2 lead.
At 5-4 down Federer knew he had to break Tsitsipas for only the second time in the match.
The Greek slipped to 15-40 down but Federer again could not take advantage, spraying a forehand out to give his opponent a match point and he won with a thundering ace.
"I'm frustrated I couldn't play better, and when I did and fought my way back, I threw it away again," said the Swiss.
"It was also parts of him. He did come up with the goods when he had to and he was better than me today."