World number six Alexander Zverev reached the third round of the French Open with a 7-6 (7-4) 6-3 7-6 (7-1) victory over qualifier Roman Safiullin.
Zverev, 24, was ragged, producing 10 double faults and needing two tie-breaks to beat a stubborn opponent.
The German's unpredictable service game came under pressure but held firm when it mattered to see him through.
The sixth seed will now face unseeded Serb Laslo Djere who beat Dan Evans' conqueror Miomir Kecmanovic.
Zverev has never been past the quarter-finals at Roland Garros but has managed to avoid Rafael Nadal, Novak Djokovic and Roger Federer in his side of the draw.
But he has opened his campaign in Paris with two matches against qualifiers and was two sets down against Oscar Otte in round one and was tested by Safiullin, ranked 182 in the world.
He will need to find more consistency if he is to come close to claiming his first Grand Slam title.
Zverev could meet promising Norwegian Casper Ruud in the quarter-finals after the 15th seed beat Poland's Kamil Majchrzak 6-3 6-2 6-4 on court seven.
Spain's 11th seed Roberto Bautista Agut suffered a shock defeat by Swiss qualifier Henri Laaksonen, losing 6-3 2-6 6-3 6-2.
Laaksonen will face the winner of 23rd seed Karen Khachanov's match with former US Open finalist Kei Nishikori.