The 36-year-old Haas converted three of his seven break points to beat the seventh-seeded Italian in under two hours. He will face Slovakian qualifier Martin Klizan, who defeated Denis Istomin 7-6 (3), 1-6, 6-1 in their quarterfinal.
The second-seeded Haas, who defeated fellow German Philipp Kohlschreiber in the final last year, is making his comeback from a right shoulder injury.
Top-seeded Fabio Fognini eased into the final four with a 6-2, 6-2 win over Brazilian qualifier Thomaz Bellucci. The Italian will next face German qualifier Jan Lennard-Struff, who came from a set down to beat Ricardas Berankis of Lithuania 4-6, 6-3, 6-4.