Roger Federer stands on the brink of a ninth Gerry Weber Open title after beating Karen Khachanov and he will take on Alexander Zverev in Sunday's final.
Federer has not dropped a set this week as he gears up for Wimbledon and reached an 11th final in Halle by defeating Russian Khachanov 6-4 7-6 (7-5).
The top seed suffered a shock loss to veteran German Tommy Haas in his first competitive match on grass this season in Stuttgart, but has built momentum in a tournament that has given him such fond memories over the years.
World number five Federer, who will go in search of an eighth Wimbledon title when the third grand slam of the year starts a week on Monday, broke the unseeded Khachanov three times and saved two set points in the second to reach yet another final.
Federer wrapped up the opening set after the first three games went against serve and there was a break apiece in the second before the legendary Swiss fended off a couple of set points to force a tie-break.
The 28-ranked Khachanov fired a backhand long in the breaker to send Federer through to a showdown with Zverev.
Fourth seed Zverev has already won three titles this year and stayed in the hunt for another by coming from behind to defeat Richard Gasquet 4-6 6-4 6-3.