Grigor Dimitrov vs David Goffin

Win Tim took a late break in the deciding set.

Either way, the final will produce a first-time victor for ATP's year-end showcase event, whether it is Dimitrov who is making his debut in the ATP Finals, or Goffin, who played one match as an alternate in 2016 and made his debut as an outright qualifier this year.

Goffin battled gamely to cling on in his opening service game but Federer took it on the fifth break point and went on to dominate the set.

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.

David Goffin had pledged to find a way against the mighty Roger Federer in the Nitto ATP Finals.

He's arguably the only player with a backhand to rival Roger Federer and now unbeaten Grigor Dimitrov is one win away from a potential ATP Finals date with the Swiss.

Dimitrov battled to a 7-5 4-6 6-3 victory against Goffin at the O2 Arena in London, while Scherzinger ran the rule over wannabe pop stars on United Kingdom talent show The X Factor.

It was 4-3 Dimitrov when he decisively broke serve to put himself on the brink of the final.

"It has been one of the best weeks I have ever had", he said.

In a dramatic finish, Zverev roared back from 4-1 down to draw level, only for Sock to pounce on his first match-point. "I was a bit nervous at the beginning, but I did some great serves, I was really aggressive so yeah, that was my day". I will need some days rest but I will be ready next week.

Goffin managed only two games against Dimitrov when they met on Wednesday in group play, but the world number eight, who claimed a rare double of beating both Nadal and Federer this week, was a different proposition this time. At 3-0 in the second set, Goffin was digging his heels into the game.

Jack Sock was the unlikeliest of players to make it thus far. "Unbelievable effort. I'm very proud to play against him in the final". The mistakes were starting to creep in as Sock pushed Dimitrov hard on the attack; forcing him wide off the court and then forcing a sprint with a slice drop shot.

Sock, who saved four match points against Dimitrov in Indian Wells and one in Montreal two years ago, before going on to win on both occasions, saved three more, but at the fourth time of asking the Bulgarian wasn't to be denied. 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.