Roger Federer needs to win one more match in Stuttgart to return to the No.1 spot for the second time this season.
Federer is aiming for a first title in Stuttgart after losing in the 2016 semis to Dominic Thiem and going out in an opening match a year ago to longtime friend Tommy Haas.
The 36-year-old won his 19th match from 21 played this season as his Wimbledon buildup continues on track.
At the All England club next month, the 20-time Grand Slam champion will be seeking a ninth title at the grass-court major.
At the bottom of the draw, Milos Raonic reached his second semi-final of the season to set up a clash with defending champion Lucas Pouille.
Raonic used his big-serving game to dominate a pair of tiebreakers in a 7-6 (7/2), 7-6 (7/1) defeat of Tomas Berdych.
"I got fortunate in the tiebreakers," the 27-year-old Canadian seventh seed said after reaching his first semi since Indian Wells last March.
"He gave me some points at the start of both tiebreaks and I was able to keep myself disciplined on serve to win them.
"I like this court, the speed is good for me, there are no bad bounces and it's holding up well," he said of the lawns first curated under the supervision of Wimbledon groundsmen.
The oft-injured right-hander said that when he's healthy, he likes his game; he played just six matches from the end of Wimbledon last summer until the start of 2018.
"I can play well when my body allows. I wasn't ready for Australia (last January). But now that I'm back I'm playing well," said the player now coached by former great Goran Ivanisevic.
Raonic has beaten Pouille in both of their previous matches, both played in January, 2016, in Australia.
The French second seed overcame a nervous second-set to reach the semis 6-4, 6-7 (5/7), 6-3 victory over Uzbek Denis Istomin.
Pouille, coached by Germany's former ATP number two Haas, had to regain his poise after losing the second set against Istomin, ranked 100th.
"I had a few nerves near the end of the second set, but I still managed to serve well. He was playing well and pushing me back.
"After I lost the second, I was still confident. In the third I played again like I did in the first set.
Pouille completed his win in a shade over two hours with 20 aces to five for his opponent. He converted on two of his dozen break chance in the tightly wound victory, saving all four break points he faced.