David Goffin's push for an ATP World Tour Finals berth remains on course after the Belgian came from behind to secure a 5-7 6-1 6-3 victory over Marius Copil at the European Open on Friday.
Goffin currently sits 10th in the Race to London but looked to be losing hope when world number 198 Copil claimed the opening set with his second break of serve.
However, the top seed recovered to win eight consecutive games from 1-1 in the second set, teeing himself to clinch a victory - albeit with his sixth match point - that sets up a semi-final clash with Diego Schwartzman, who knocked out fourth seed Pablo Cuevas.
"He served some bombs," said Goffin. "I really needed to find my footwork and my returns.
"I tried to make him go for some wrong shots, go for winners from tough positions."
Kyle Edmund saw off Andreas Seppi 6-3 6-4 to reach his first ATP semi-final, where he will come up against French third seed Richard Gasquet - a 6-2 6-4 victor over Jan-Lennard Struff.
At the Kremlin Cup, second seed Albert Ramos-Vinolas crashed out at the hands of Fabio Fognini, who goes on to face Philipp Kohlschreiber in the last four, with the German having overcome Thomaz Bellucci.
Meanwhile, Pablo Carreno Busta survived a scare to beat qualifier Alexander Bublik 6-4 2-6 7-6 (7-1).
The sixth seed will meet France's Stephane Robert for a place in the final.