Defending champion Roger Federer has extended his unbeaten run on grass to 20 matches by defeating American qualifier Denis Kudla to set up a Halle Open final with young Croatian Borna Coric.
The 36-year-old won Saturday's semi-final, 7-6 (7-1) 7-5.
The pair exchanged early breaks in overcast conditions before top-seeded Federer stamped his authority by winning the tiebreak, ending Kudla's 10-set winning streak this week.
Playing his eighth match in less than two weeks, Federer seemed clearly fatigued but showed great mental strength to save five break points in the second set.
A lapse of concentration from Kudla in the 11th game allowed Federer to grab the only break point on offer before the Swiss served out the match in just under an hour and a half.
"Denis has played an excellent tournament and made it difficult for me," Federer said. "So I am of course very glad to have made it."
Nine-time Halle champion Federer has reached his 12th final on German grass, and will next face 34th ranked Coric, who will make his first final appearance of the season.
The 21-year-old Coric, who defeated second seed Alexander Zverev earlier this week, advanced after playing just five games of his semi-final against Robert Bautista Agut.
The Spaniard was forced to retire after an unfortunate slip, with Coric serving at 2-3.
Federer, who must win a record-extending 10th title in Halle to remain at the top of the world rankings, holds a 2-0 head-to-head advantage over Coric.