Defending champion Nikoloz Basilashvili saved two match points against Alexander Zverev before battling past the German 6-4 4-6 7-6(5) to reach final of the Hamburg European Open on Saturday.
Basilashvili was staring at defeat while trailing 3-5 in the third set but the 27-year-old dug deep to deny local favourite Zverev and stay on course for a third career ATP title.
In Sunday's title clash, the fourth-seeded Georgian takes on Russian Andrey Rublev who beat Spaniard Pablo Carreno Busta 4-6 7-5 6-1 in the other semi-final at the Rothenbaum Tennis Centre.
"It was a tough match, a tight match. There were a lot of ups and downs... I was emotional on court but I was able to finish it in the tiebreak and I'm really happy about that," Basilashvili said in a courtside interview.
Asked if he played his best tennis under pressure, he added: "It depends on the pressure. If it's a little bit of pressure I play good. Today I was extremely tired in the tiebreak but I went for my shots and they all went in.
"It's good that I've managed to reach back-to-back finals. Hopefully I can get some rest and prepare for it."
Basilashvili, who won his first title in Hamburg last year, saved 16 of the 20 break points he faced against world number five Zverev and converted four to seal the match in a little over three hours.
The world number 16 trailed 2-5 in the final-set tiebreak after rallying back into the match but held his nerve for only his second win over a player ranked in the top five.