Rafael Nadal conceded he was "uncomfortable" during a difficult second set against Martin Klizan, as the Spaniard set up a Barcelona Open semi-final with David Goffin.
The world number one coasted through the first set to love on the court named in his honour, but had to rally from an early break down in the second to record a 6-0 7-5 victory.
Klizan - who accounted for Novak Djokovic's second-round demise - mixed up his game, played some punishing forehands and had three set points, leaving Nadal doubting if he could get the break he needed.
"I started well in the first set, then very bad in the beginning of the second set," said Nadal, who extended his record of consecutive sets won on clay to 42.
"The first game was horrible. I had options to return the break, but Klizan played well and it was difficult to move him on the track.
"I was uncomfortable but luckily I was able to do it the break back. It was important not to fail, in the end it has fallen on my side, and I am happy."
Awaiting in the last four is fourth seed Goffin, who fought from a set down to overcome Roberto Bautista Agut 6-7 (3-7) 6-2 6-2. The Belgian won his previous meeting with Nadal at the 2017 ATP Finals, but he has lost both of their encounters on clay.
On the other side of the draw, Stefanos Tsitsipas continued to show his burgeoning talent with a convincing 6-3 6-2 beating of Dominic Thiem, a beaten finalist in Barcelona to Nadal 12 months ago.
Second seed Grigor Dimitrov joined Thiem in biting the dust at the quarter-final stage, the ATP Finals champion going down 6-3 7-6 (7-4) to Pablo Carreno Busta.
At the Hungarian Open, Aljaz Bedene remained on course to repeat his run to the final from 12 months ago with a hard-fought 6-3 2-6 6-2 victory over Lorenzo Sonego.
Had Sonego progressed to the last four, there would have been three Italians in the semi-final of an ATP World Tour event for the first time since 1987 after Andreas Seppi and Marco Cecchinato won their clashes with Nikoloz Basilashvili and Jan-Lennard Struff respectively.
In the other last-eight match, John Millman was about to serve for the match when leading a deciding set against Yannick Maden 5-4, but he will have to wait until Saturday after darkness halted play.