The sixth-seeded Melzer, performing before enthusiastic native fans, outlasted Italy's Potito Starace 6-4, 6-7 (6-8), 6-3 to become the first Austrian to reach the Kitzbuhel final since Thomas Muster was runner-up to Spain's Albert Costa in 1995.
Melzer won the first set and held a break in the second before Starace saved a match point at 6-5 and sent the second set to a tie-break.
Melzer was dominant against his weary foe and captured the third set fairly easily.
In his match, Del Potro served six aces and converted two of three break points in a 6-3, 7-6 (7-5) victory against Romanian Victor Hanescu.
Del Potro holds a 2-0 lead in previous meetings against Melzer.
Sunday's champion will claim a first prize of $185,000.