The second-seeded Haas rallied past Lukas Rosol of the Czech Republic 3-6, 6-4, 7-6 (0). The German, who won in Vienna in 2001, will be playing in his third final of the season. He won his 14th career title in Munich in May.
Haase held off four set points for Tsonga in the opening set. He failed to serve out the match at 5-4 but won six of the last seven points in the tiebreaker against the eighth-ranked Frenchman, who had his left knee taped.
''He was a bit injured and that made me nervous,'' said Haase, who had lost his last 14 matches against Top 10 opponents since beating Andy Murray in Rotterdam in 2008.
''You tend to keep the ball in play and wait for his mistakes,'' Haase said. ''Later on, I managed to focus better on my own game.''
Tsonga declined to comment on his apparent injury and said he was going to prepare as usual for his upcoming tournament in Valencia, Spain, and Paris.
''I tried everything I could but it wasn't enough today,'' the Frenchman said. ''I just didn't play well enough.''
This will be Haase's fourth career final but first on hard court. The Dutchman won both his career titles on clay in Austria — in Kitzbuehel in 2011 and '12. He lost the final in Gstaad, Switzerland, three months ago.
Haase has never played Haas before in an ATP event. In any case, the final poses a linguistic challenge for the referee.
''Maybe the referee should just call `game Tommy' and `game Robin' tomorrow,'' the Dutchman said.
Haas initially struggled against the 44th-ranked Rosol, who hit 16 aces to raise his total for the tournament to 49 and conceded just two points on serve in the opening set.
Haas couldn't convert his first break point at 3-2 but used his second to even the match. The final set went with serve before Haas dominated the tiebreaker. Rosol was eyeing his second career final after winning his first one in April in Bucharest, Romania.
''I managed to play my best tennis on the big points and in the tiebreaker,'' Haas said. ''That makes me very satisfied.''
The German led 6-0 when a penalty point for Rosol ended the match. After being warned earlier by referee Cedric Mourier, the Czech broke his racket by smashing it on the court.
''I've been on the circuit for 17 years,'' the 35-year-old Haas said. ''But I've never won a match without playing match point.''