Top seed Stefanos Tsitsipas was made to sweat but got past Felix Auger-Aliassime in three sets to reach the Mexican Open semi-finals on Thursday.
World number five Tsitsipas, who was a semi-finalist at last month's Australian Open, defeated seventh seed Auger-Aliassime 7-5 4-6 6-3 in Acapulco.
In a tight contest, back-to-back double faults from Canadian sensation Auger-Aliassime in the eighth game of the third set proved costly as Tsitsipas broke after the pair had held serve throughout the last.
"It got really tight," Tsitsipas said in his post-game interview. "I got a bit lucky with the double faults towards the end of the match.
"I was just persistent. Towards the end I had zoned in 100 per cent. Both of us brought an amazing energy out on the court. Felix is someone I've played a lot and I have huge respect for him."
Greek star Tsitsipas will next play emerging Italian teenager Lorenzo Musetti for a spot in the ATP 500 tournament decider.
Qualifier Musetti, who upstaged third seed Diego Schwartzman in the first round, stunned fifth seed Grigor Dimitrov 6-4 7-6 (7-3) in the final match of the day.
The 19-year-old Musetti will now contest his maiden ATP 500-level semi-final as he prepares to enter the top 100 on the men's tour after just his fourth main-draw appearance.
Alexander Zverev – the German second seed – progressed to the semi-finals with a walkover after eighth seed Casper Ruud withdrew due to a wrist injury sustained in practice.
Zverev will play countryman Dominik Koepfer in the final four after he defeated Cameron Norrie 7-5 6-4, maintaining his run of not dropping a set all tournament.