Sofia Kenin reached her first semi-final since winning her maiden Grand Slam title at the Australian Open last month by beating France's Oceane Dodin in the Lyon last eight on Friday.
The American top seed bounced back after losing a tight second set to win 6-1, 6-7 (5/7), 6-2 against the world number 130.
Kenin had ended a three-match losing streak by beating Vitalia Diatchenko in the first round before saving a match point to edge out Romanian qualifier Jacqueline Cristian on Thursday.
"It was still not perfect today, but I definitely feel like I found my rhythm. I was playing well, dictating well," Kenin told wtatennis.com.
"I felt pretty good in the first round - still not 100 percent, but I still got the win - and I would say that today was my best game (in the tournament so far)."
The world No 5 will face Alison Van Uytvanck for a place in her sixth WTA final after the Belgian saw off French third seed Caroline Garcia 6-2, 6-2.
Kenin raced through the opening set in just 26 minutes, but was pegged back by a dogged Dodin in the second-set tie-break after failing to serve out the match in the ninth game.
The 21-year-old quickly recovered, though, breaking her opponent three times in the decider before sealing victory on her second match point.
The other semi-final will see seventh-seeded Russian Daria Kasatkina take on Germany's Anna-Lena Friedsam.
Results from the WTA tournament in Lyon on Friday (x denotes seeding):
Sofia Kenin (USA x1) bt Oceane Dodin (FRA) 6-1, 6-7 (5/7), 6-2
Alison Van Uytvanck (BEL x5) bt Caroline Garcia (FRA x3) 6-2, 6-2
Daria Kasatkina (RUS x7) bt Camila Giorgi (ITA) 6-2, 4-6, 6-2
Anna-Lena Friedsam (GER) bt Viktoria Kuzmova (SVK x8) 3-6, 7-6 (7/4), 6-2