Defending champ Novak Djokovic lost for just the second time this season, never getting to grips with Haas, who kept the Serb off his game with a solid mixture of shots on a cool southern Florida evening.
"There are days when you don't feel good on the court and this is one of those days," Djokovic said.
"All the credit to him. He was the better player. As far I am concerned it is the worst match I have played in a long time.
"I just didn't feel good on the court. The conditions were different. The balls didn't bounce at all and he used a variety of shots very well.
"I just didn't find a solution to come back into the match. I made so many unforced errors on the forehand side."
Haas, who turns 35 next week, advances to the quarter-finals where he will face Frenchman Gilles Simon who outlasted Djokovic's countryman Janko Tipsarevic 5-7, 6-2, 6-2.
Haas hit seven forehand winners and won 76 percent of his first-serve points, snapping Djokovic's 14-match winning streak in Miami.
Haas easily won the first set then clinched the victory on his second match point with a forehand winner to the open court, ending the one hour, 20 minute match on centre court.
Haas has won three of seven career meetings with Djokovic but this was his first win on the hardcourts with his other two coming on grass.
Djokovic, who had won this event three times (2007, 2011, 2012), had one double fault and won just 54 percent of his second serves.