Aaron Brooks had 18 points while Tracy McGrady returned from a left ankle sprain to score 16 points with six assists. The Rockets finished off a three- game homestand with back-to-back wins, following a loss to Philadelphia last Wednesday.
Luis Scola posted 13 points and matched a career high with 18 rebounds in the win.
Luol Deng notched a season high with 28 points to go with six rebounds and Ben Gordon scored 20 for the Bulls, who had won a season-high three straight on the heels of a season-worst five-game slide.
Derrick Rose had 12 points, seven boards and seven assists while Tyrus Thomas posted 14 points, 13 rebounds and four assists in the setback.
Chicago was also aiming for its fourth consecutive road victory and fell to 3-2 on a seven-game road trip.
Houston held a 20-18 lead after 12 minutes and went up by three at the half, 48-45.
The Bulls got to within one, 52-51, after six straight points from Gordon but Houston answered with a 17-8 run to take a 10-point lead. Brooks capped the third quarter with a three-pointer and then a layup to make it a 79-66 game heading to the final stanza.
Chicago opened the fourth on an 11-3 run capped by an Andres Nocioni three- ball but Yao answered with a three-point play and Houston went on to score 15 of the next 19 points. Brooks' three-pointer with 4:11 remaining made it a 97-81 affair, and the Rockets held a double-digit advantage until the final minute.