Roger Federer survived a mid-match scare to beat Roberto Bautista Agut in the Halle Open quarter-finals but world number five Alexander Zverev was knocked out by Belgium's David Goffin.
Federer, chasing a 10th Halle title, beat the Spaniard 6-3 4-6 6-4 to reach the semi-finals for a 15th time.
He faces Pierre-Hugues Herbert next after 2018 champion Borna Coric had to retire because of a back injury.
German Zverev served nine double faults as he lost 3-6 6-1 7-6 (7-3) to Goffin.
Eight-time Wimbledon champion Federer also dropped a set against Jo-Wilfried Tsonga in the second round.
"My body is reacting well to the grass, so I would prefer the matches to be shorter," he said. "But if not, it's no problem. I have enough time to recover before Wimbledon."
Home favourite Zverev, 22, has struggled with a swollen knee after slipping and hurting himself in the first round and will hope to rediscover his form and fitness in time for the beginning of Wimbledon on 1 July.
Goffin will face Matteo Berrettini in the semi-finals after the Italian overcame Russian third seed Karen Khachanov 6-2 7-6 (7-4).