Frenchman Tsonga, hoping to secure a spot at the ATP World Tour Finals, failed to convert four set points in the opening set before dropping the second on a tie-breaker.
"He was a bit injured and that made me nervous," said Haase. "Later on, I managed to focus better on my own game."
Dutchman Haase plays German second seed Tommy Haas in the final after his three-set triumph over Lukas Rosol in the other last-four encounter.
Meanwhile top seed Richard Gasquet will meet unfancied Kazakh Mikhail Kukushkin in the Kremlin Cup men’s singles final after the duo won their respective semis in Russia.
And David Ferrer and Grigor Dimitrov set up an intriguing Stockholm Open final with semi wins over Ernests Gulbis and Benoit Paire respectively.
Vienna Open semi-finals
Robin Haase (Netherlands) beat 1-Jo-Wilfried Tsonga (France) 7-5 7-6(4)
2-Tommy Haas (Germany) beat 8-Lukas Rosol (Czech Republic) 3-6 6-4 7-6(0)
Kremlin Cup men’s semi-finals
1-Richard Gasquet (France) beat Ivo Karlovic (Croatia) 6-4 7-5
Mikhail Kukushkin (Kazakhstan) beat 2-Andreas Seppi (Italy) 6-1 1-6 6-4
Stockholm Open semi-finals
7-Grigor Dimitrov (Bulgaria) beat 6-Benoit Paire (France) 4-6 6-2 6-2
1-David Ferrer (Spain) beat 5-Ernests Gulbis (Latvia) 3-6 6-4 6-1