World number two Roger Federer edged past Ivo Karlovic 7-6, 7-6 to reach the Halle Open final for the 10th time where he will face Italian Andreas Seppi, who went through when opponent Kei Nishikori retired injured.
The Swiss top-seed, eyeing his eighth title in the grasscourt Wimbledon warmup event, held serve throughout but was taken to two tiebreaks having failed to secure a single break point against the Croatian's powerful serve.
"It is always complicated to play against Ivo but I remained calm when it mattered," Federer told reporters.
"I was lucky in the first round [needing three sets against Philipp Kohlschreiber] so I am happy to have made the final."
It was always going to be a slugfest with Karlovic having fired a record 45 aces past Tomas Berdych on Friday.
The Croat did not disappoint, racking up 10 aces halfway through the first set.
A sensational backhand return in the opening tiebreak gave Federer the slight edge he needed on his opponent's serve and a double fault from the Croatian handed him the first set.
The Swiss again had to stay patient, but won two points on the Croatian's serve in the second tiebreak and sealed his win with a backhand volley after one hour and 28 minutes.
Seppi advanced to his second final of the year after Zagreb when Japan's Nishikori, the second seed, retired injured early in the first set.
It was the second time in two days that the Italian had gone through thanks to an injury retirement, after he reached the last-four on Friday when France's Gael Monfils conceded in the second set.
Nishikori, who was moving poorly with his left leg heavily bandaged, lasted only five games before quitting.
Andreas Seppi (Italy) beat 2-Kei Nishikori (Japan) 4-1 (Nishikori retired)
1-Roger Federer (Switzerland) beat 8-Ivo Karlovic (Croatia) 7-6(3) 7-6(4)