"Second and third set I started off very well, but then I wasn't sharp".
So, Tsitsipas and Zverev join the two straight-set victors, Daniil Medvedev and Matteo Berrettini, in the semi-finals to complete a quartet of "next-gen" players remaining in the draw, with Saturday's semi-finals getting underway at 930 United Kingdom time.
"They're knocking on the door big time the young guys, it's exciting - they're great".
Federer has also won 28 Masters 1000 titles in his illustrious career.
"It's the best comeback that I have ever had probably", Tsitsipas said after the match.
It was the first time Zverev had beaten a top ten player this season, while Tsitsipas reached the semi-finals of the Australian Open earlier this year.
The 21-year-old has now defeated Djokovic, Federer and Rafael Nadal this year to burnish his fast-growing reputation.
Second-seeded Federer holds a 10-1 winning record against Goffin, including all three matches they've played this year.
Djokovic, the defending champion, will next play Greek sixth seed Stefanos Tsitsipas who beat Poland's Hubert Hurkacz 7-5 3-6 7-6 (5) in the only three-setter of the day.
"I'm happy because I was losing to him last week and I was playing really good also", 10th-seeded Fognini said.
"I know I just have to hang in there and be able to be more aggressive".
Italian 11th seed Marco Berrettini progressed with a 7-6 (7-5) 6-4 win over Spain's Roberto Bautista Agut, boosting his chances to qualify for the season-ending ATP Finals in London next month.
He hit 34 winners to Djokovic's 28, and made 22 unforced errors while his opponent had 26.
Djokovic, who had looked imperious up until now, had no complaints.
Tsitsipas had a first break-point opportunity in the seventh game, but the 16-time grand slam champion prevented the world number seven from getting back on serve and took the opening set in just over half an hour.
World No. 6 Zverev had five match points in the second set, the last of which Federer saved with a backhand passing shot.
Tsitsipas, runner-up at the China Open last week, continued to put the Serbian under pressure, though, and got the elusive break to level the match as he continued to unleash victor after winner.