The Greek sixth seed, 17 years younger than his 38-year-old opponent, beat the Swiss at the Australian Open but had fallen to him twice since then.
Federer was unrecognisable from the player who dominated Novak 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.
Coming into the match, the Greek 21-year-old led the tournament in service games won, with 35 out of 37.
Tsitsipas conceded a break point in his first game as cries of "Let's go Roger, let's go" rang around the O2 Arena but he survived the scare and broke Federer in the next game.
Thereafter it was a case of what might have been for Federer, who dropped just six points on his serve in the first set and saw a whopping six break points come and go.
Tsitsipas was forced to dig deep to see out the set, needing seven set points before he finally closed 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 -- his 10th, to level at 2-2.
Tsitsipas, dominating rallies from the back of the court, broke back 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 an ace.
Thiem Dethrones Zverev
Thiem beat Roger Federer and Novak Djokovic to reach the last four of the season-ending tournament for the first time and dispatched Zverev 7-5, 6-3 at the O2 Arena in London.
Zverev was unable to break the fifth seed, who was more composed than the defending champion and broke once in each set to set up a showdown with Tsitsipas.
Thiem has won five titles in a stellar season and the two-time French Open runner-up will claim the biggest of his career if he gets the better of Tsitsipas on Sunday, having struck 21 winners in his sixth victory in eight meetings with Zverev.