The Belgian, who was soundly beaten in his previous round-robin match by group winner Grigor Dimitrov, had a shaky start, losing the first three games, but conceded only two games after that in the entire match as he romped to victory in 71 minutes.
“It was a pity to play against Dominic, he is such a good friend and a nice guy. It s never easy to play against a friend,” said Goffin, who beat world number one Rafael Nadal over three punishing sets in his opening match.
“After the first match against Rafael I wasted so much energy, I was not ready for Grigor, but I had a good rest yesterday and was ready for today and I hope I can do the same for the semi-finals,” he added.
The seventh seed admitted Federer, gunning for his seventh end-of-year title, would be a tough opponent on the indoor hard court at London s O2 Arena but said he had “nothing to lose”.
Goffin, 26, looked out of sorts at the start of the match, being broken to love in his first service game, but reeled off 15 points in a row to change the complexion of the match completely.
Two breaks of serve were enough to seal the set 6-4.
Thiem held up Goffin s charge, receiving medical treatment for an apparent cut on his left knee between sets, but the Belgian was quickly into his stride again, reeling off six games in a row to win the set 6-1 and seal an emphatic win.
Austria s fourth-seeded Thiem struggled badly on serve throughout, managing to land just 39 percent of first serves in the second set as his opponent and regular practice partner took full advantage.
The pair were playing off for the last semi-final spot after Federer, Dimitrov and Jack Sock sealed their places earlier in the week.
In the evening match in the Pete Sampras group, Dimitrov coasted to a 6-1, 6-1 victory against Pablo Carreno Busta.
The Spaniard replaced world number one Nadal after his compatriot pulled out injured following his defeat by Goffin, who is the first Belgian to qualify for the season-ending event.
Federer topped the Boris Becker group with American Sock in second place.
Sock will play Bulgaria s Dimitrov in Saturday s other semi-final.