Two of the top four seeds almost fell in the French Open third round but Alexander Zverev saved himself from a big loss after Grigor Dimitrov was swept out.
German second seed Zverev, who entered the tournament on the back of two clay titles and just three losses on the surface, came back from a set down to defeat No.26 seed Damir Dzumhur 6-2 3-6 3-4 7-6 (7-3) 7-5) in three hours and 45 minutes.
Dzumhur served for the win in the fourth set but never held a match point, with Zverev fighting back in the tiebreak.
He led 4-2 in the final set, saw off a match point and then bounced back to secure the win.
It is only the second time Zverev, who has won multiple Masters 1000 wins, moved past the third round at a grand slam and, remarkably, his first top-50 win at a major.
He will face French No.15 seed Lucas Pouille or Karen Khachanov in the fourth round.
Dimitrov, meanwhile, was eliminated by Spanish veteran Fernando Verdasco to continue his own French Open woes.
The Australian Open quarter-finalist had never reached the second week in Paris in seven previous attempts, with Verdasco’s 7-6 (7-4) 6-2 6-4 win extending that streak.
The 34-year-old Verdasco will next face either his compatriot Roberto Bautista Agut or former champion Novak Djokovic for a quarter-final spot.
It is the seventh time the world No.35 has reached the French Open fourth round, but it is the only grand slam tournament where he is yet to make the last eight.