Alexander Zverev battled past Arthur Fils despite losing the first set to book a place in the Halle Open semi-finals.
The German, chasing his first-ever grass-court title, needed two and a half hours to get his 6-7 (5-7) 6-3 6-4 victory.
Neither player managed a break in the opening set, matching each other evenly before Fils finally got the edge in the tie-break to take the lead.
Zverev soon raised his level though, and during a run of eight consecutive points, broke the Frenchman to love at 3-2 on his way to forcing a decider.
Despite another bright start to the set by Fils, he failed to get a single break, with Zverev rallying to set up a meeting with Hubert Hurkacz in the next round.
Data Debrief: Zverev edges ever-closer to grass title
Zverev is 37-10 for the season, and is the first person since Roger Federer (2012-19) to reach back-to-back semi-finals at the Halle Open.
A two-time finalist at the tournament, the German is hoping to add two more wins to his 18-7 record in Germany to finally get his hands on the trophy.