The 15th-seeded German won three-quarters of his first and second service points while Djokovic saved just 5-of-9 break-point opportunities.
Haas advanced to the quarterfinals where he will meet 11th-seeded Giles Simon of France, who rallied to beat seventh-seeded Janko Tipsarevic of Serbia 5-7, 6-2, 6-2.
Second-seeded Andy Murray of Great Britain also advanced to the quarters with a 6-2, 6-4 win over 16th-seeded Andreas Seppi of Italy. He will play No. 9 seed Croatian Marin Cilic, who topped sixth-seeded Jo-Wilfried Tsonga of France 7-5, 7-6 (7-4).