The German rallied from behind to deny the 21-year-old Dane a third straight quarter-final at Roland-Garros with a 4-6, 6-1, 5-7, 7-6(2), 6-2 win in a match that ended at 1.40 am local time (5:10 am IST) on Tuesday.
Zverev won back-to-back five-setters to reach the fourth successive Paris quarterfinal and the sixth in the last seven years.
"I'm proud to be in the quarter-finals. I've played a total of eight-and-a-half hours in the last three days, so I need to recover, I need to do everything possible to be ready for the quarter-final match, because obviously, the tournament doesn't stop here, and I want to continue," said Zverev after the win.
Now on a 10-match winning streak, he will next play against Australian No.11 seed Alex de Minaur, who upset fifth seed Daniil Medvedev 4-6, 6-2, 6-1, 6-3 earlier on Monday.
Earlier on Monday, for the third year in a row, Casper Ruud made it to the quarterfinals at Roland-Garros after beating Taylor Fritz 7-6(6), 3-6, 6-4, 6-2.
He will meet in the next round the one who deprived him of a crowned Major last year, Novak Djokovic.