The Bulls pounded the boards from the start and scored the final 10 points of the first quarter for a 26-22 lead. Butler's buzzer-beater to end the first half put them up 49-48.
Marco Belinelli sank a 3-pointer to put Chicago up 75-66 after three quarters.
The Heat had won their past two games, both in overtime, but the Bulls wouldn't let them get to OT.
NOTES: Regarding All-Star voting, James said with a chuckle: "It looks like I'm going to be a starter. Surprising." ... The Bulls are 9-8 home and 9-5 on the road. ... Chicago improved to 8-1 on the road against the Eastern Conference.