The Austrian world number eight struggled with Haase's consistency throughout and missed two set points in the second set before double-faulting on his opponent's first match point.
Thiem suffered a solitary break as the 30-year-old Dutchman, ranked 42nd in the world, went 5-3 up before serving out the set.
Federer thrashes Zverev to claim ninth title at Halle in style
The 23-year-old Thiem was again under pressure as the unforced errors started to pile up and had to dig deep to save further break points at 2-2 and 4-4 in the second.
Haase finally got the break he wanted two games later, firing an audacious lob and slapping a desperate and risky crosscourt forehand that Thiem could not return to go 6-5 up.
But instead of serving out the match Haase was broken straight back and had to save two set points before Thiem handed him the game with his fourth double-fault.
Haase will next face Frenchman Richard Gasquet, who beat Australian Bernard Tomic 6-3 6-3.
Germany's Alexander Zverev, last year's finalist in Halle, found little resistance against Philipp Kohlschreiber to win 6-3 6-3 and set up a quarter-final against Roberto Bautista-Agut.
HALLE OPEN MEN'S SINGLES ROUND 2 RESULTS
Robin Haase (Netherlands) beat 2-Dominic Thiem (Austria) 6-3 7-6(7)
4-Alexander Zverev (Germany) beat Philipp Kohlschreiber (Germany) 6-3 6-4
7-Roberto Bautista (Spain) beat Dustin Brown (Germany) 6-4 1-6 7-6(6)
Richard Gasquet (France) beat Bernard Tomic (Australia) 6-3 6-3
Federer moves into 140th career final at Halle
Federer eases past Mayer to reach Halle semi-finals