Roger Federer will play David Goffin in the Halle Open final as he bids for a 10th title at the tournament.
The Swiss, 37, beat Andy Murray's Wimbledon doubles partner Pierre-Hugues Herbert 6-3 6-3 in the semi-final.
Belgian world number 33 Goffin, 28, reached his first ATP tour final since 2017 with a 7-6 (7-4) 6-3 win against rising Italian star Matteo Berrettini.
Federer - the top seed at Halle - has won eight Wimbledon titles, with the last of these coming in 2017.
But it has not been a straightforward run on grass in Germany for the 20-time Grand Slam champion so far, who dropped a set against both Jo-Wilfried Tsonga and Roberto Bautista Agut in earlier rounds.
Goffin knocked out world number five and home favourite Alexander Zverev in the quarter-finals on Thursday, but has lost seven of his last eight meetings with Federer.