"I just tried to stay alive out there," said Agassi, who has reached the final without dropping a set.
"I got pushed back, not because I wanted to, but Tommy hits the ball real solid. If he's controlling the point, he's pushing you back for sure."
Playing in Stockholm for the first time in 10 years, Agassi came back from 3-5 down in the first set to take it to a tiebreak where Haas took a 3-0 lead.
Johansson beats Agassi in Stockholm
The German former world number two kept his lead to 5-2 but Agassi clawed his way back with some stunning defensive play.
Agassi broke back to 5-4, held his serve, then clinched the tiebreak 7-5 with a passing shot.
Both players held serve in the second but Haas struggled in the tiebreak as Agassi broke him to 2-1 and again to 5-1. Haas broke back once but a backhand down the line earned Agassi three match points.
Haas saved the first one but hit a forehand wide on the next, giving Agassi the tiebreak 7-4.
Agassi marches on in Stockholm
Former world No.2 Norman retires