A bruising first set went in Sock's favour before Zverev took the second easily. In the second game of the first set Sock made two forehand errors and a double fault, Dimitrov was smart enough to play an aggressive tennis and break Sock at 30. But Goffin broke serve with a forehand victor in the second game of the second set and consolidated his advantage to take the match into a decider.
There still seemed plenty of time for 19-time Grand Slam champion Federer to re-assert his authority but Goffin stayed cool and his moment of truth arrived at 5-4 when he stepped up to serve for the biggest win of his career.
The Bulgarian, finally beginning to look the real deal after year's weighed down by comparisons to Swiss great Roger Federer, produced more dazzling tennis to win 4-6, 6-0, 6-3 and set up a Sunday showdown with fellow debutant David Goffin. "I'm just so humbled to be able to play the final tomorrow".
The season-ending extravaganza ATP Finals at London's O2 ends another memorable year which will be covered via our website www.skysports.com/tennis with live blogs and updates as the season reaches its climax.
"I have no words", said Goffin, who was embraced at the net by his 36-year-old opponent.
It was 4-3 Dimitrov when he decisively broke serve to put himself on the brink of the final.
The Belgian opened the match well, acing Federer twice, but he threw away a game point allowing his opponent to swoop in and claim the first game easily. I just want to keep the momentum going.More news: Tottenham adjusting to change of status in north London
More news: Floor collapses at apartment party in Denton; only minor injuries reported
More news: Roy Moore's brother compares sexual conduct allegations to the persecution of Jesus
Despite Goffin's upset win - and his victory over world number one Rafael Nadal earlier in the week - Dimitrov is a 4/9 favourite for that one having dismantled the Belgian 6-0 6-2 in their group-stage meeting on Wednesday.
He was broken again in the third game of the second set and then twice more as Goffin cruised to victory.
But as the only undefeated player in the final, Grigor Dimitrov has a lot of motivation to take home the title.
"I think that was the first set", Dimitrov said in his postmatch press conference. "With that season, I'm extremely happy", Federer said.
Dimitrov held confidently and then broke when Sock mishit a rally ball.
Dimitrov won his last two group matches for the loss of four games and continued in that vein against Sock, racing into a 4-0 lead. The Bulgarian had lost his previous two clashes with Sock having held match points and three went begging in a nervy finale before he ended the contest.