David Goffin celebrates victory over Roger Federer at the ATP World Tour Finals ©Getty Images

David Goffin registered a shock win over world number two Roger Federer to earn a meeting with Bulgaria's Grigor Dimitrov of Bulgaria in tomorrow's final of the Association of Tennis Professionals (ATP) World Tour Finals.

The seventh-seeded Belgian came from a set down to claim his first victory over Switzerland's 19-time Grand Slam champion in seven attempts.

Goffin defeated Federer - six times an ATP Finals winner - 2-6, 6-3, 6-4.

Dimitrov defeated Jack Sock of the United States 4-6, 6-0, 6-3 in the second semi-final at London's O2 Arena.

The 26-year-old Goffin, who earlier this year became the first Belgian player to reach the ATP top 10, looked stunned as he secured one of the greatest wins of his career.

Grigor Dimitrov, right, shakes hands with Jack Sock after earning a three-sets victory in the second semi-final at the ATP World Tour Finals in London ©Getty Images
Grigor Dimitrov, right, shakes hands with Jack Sock after earning a three-sets victory in the second semi-final at the ATP World Tour Finals in London ©Getty Images

Earlier in the tournament he defeated Spain's current world number one, Rafael Nadal, who subsequently retired from the competition because of injury.

"I have no words," said Goffin, who was embraced at the net by his 36-year-old opponent.

"I cannot describe how I'm feeling.

"So much joy, so much happiness."

Federer, whose extraordinary resurgence this season has seen him win the Australian Open and Wimbledon titles, started strongly but looked lacklustre towards the end of a match in which he produced 37 unforced errors.

Dimitrov had reached the semi-final with a 6-0, 6-2 win over Goffin - but given the shocks that have occurred in this tournament, the final looks anything but a foregone conclusion.

The Bulgarian had to work hard for his victory against an opponent who saved three match points.

"Jack is an unbelievable player," said Dimitrov.

"That forehand gives me so much trouble, I'm not going to lie.

 "He found a way to win it and he was playing so well but my belief was really good today.

"I was very composed with myself, I didn't let any negative thoughts come into my head. 

"Things went my way tonight and I'm more than happy. 

"I'm so humbled to be in the final tomorrow."

On the subject of his re-match against Goffin, Dimitrov added:

"It's another match - I just need to keep on playing. It's the last match of the season so full house, and we're on."