Wade sustained a bruised left knee in the first half and Miami didn't have the firepower to stop the Cavaliers, who got 23 points apiece from LeBron James and Kyrie Irving and won their 17th game straight at home. James added eight rebounds and seven assists against his former team.
Tristan Thompson added 15 rebounds for Cleveland, a league-best 30-7 since Jan. 15.
Iman Shumpert added 17 points for the Cavaliers, who played without starting forward Kevin Love. He sat out with a sore back after being elbowed in Sunday's win over Philadelphia.
Wade got hurt midway through the second quarter, when his right knee buckled while he drove the right side.
The three-time NBA champion crumpled to the floor with his left knee bending awkwardly to the side. With Wade on his back, the Cavaliers stole the ball, and as play continued on the other end, the 33-year-old remained on the floor and grabbed his left knee. Wade slowly got to his feet, and with concerned teammates looking on, he walked gingerly toward the locker room.
Miami medical personnel examined Wade's knee and concluded he sustained only a bruise.
The Heat are tied with Boston for the eighth and final spot in the Eastern Conference playoffs. The four-time defending conference champions can't afford to be without their leading scorer, co-captain and undisputed leader for the push.
Barnes' big shot came after Eric Bledsoe broke free for a reverse layup to put Phoenix ahead with 4.5 seconds to play. And Bledsoe's layup followed Stephen Curry's go-ahead three-pointer that seemingly put the Warriors up for good.
Instead, it took all 48 minutes for the NBA-leading Warriors to extend their latest winning streak to 11 games. They fell behind by four in the final minutes and traded scores with the fading Suns the rest of the way.
Trevor Ariza scored 19 for Houston, while Terry had 10 and Corey Brewer, another key member of Dallas' title run in 2011, finished with 14.