British number one Cameron Norrie battled into the Lyon semi-finals for the third time as his French Open preparations continued in ideal fashion.
The 26-year-old top seed was tested throughout by Argentina's Sebastian Baez but came through 6-4 4-6 7-5.
Norrie, runner-up here last year, will face 19-year-old Dane Holger Rune for a place in Saturday's final.
It is a third semi-final of the year for the British world number 11.
After trading early breaks, Norrie got the decisive break to love in the fifth game and took the first set when he put away a powerful forehand at the net.
Seventh seed Baez saved two break points in the seventh game of the second set, which proved key as the teenager grew in confidence.
The Argentine earned himself a first break point of the set at the best possible time, converting it to take Norrie into a decider when the Briton overcooked a forehand.
Norrie went 2-0 up in the third and it had looked like he would see out the match without difficulty when he earned himself two match points at 5-3 but Baez had other ideas.
The Argentine saved the first with a sublime lob and then the second when Norrie netted, going on to hold his serve and then break in the following game to level at 5-5, with the Briton also failing to convert another match point.
But a double fault in the following game handed Norrie a break and he finally secured the win with an overhead smash on his fourth match point.
"All credit to Sebastian, he played a really good match and made it so physical," Norrie told Amazon Prime. "It was just really tough to finish it off at the end there but I managed to do it and play a good game at the end.
"I really enjoyed the battle and I'm looking forward to the next one."
Norrie, who struggled with a foot injury in Rome last week, seems to have shaken off the problem in time to put together a good run in the build-up to the clay-court Grand Slam which starts on Sunday at Roland Garros.