Kevin Durant delivered the last of his 30 points to bring Oklahoma City within one with 2:39 remaining but the Thunder did not score again. After Durant's basket, Oklahoma City suffered three missed field goal attempts, two missed free throw tries and one turnover.
Chris Bosh gave the Heat a three-point lead on a jumper with 1:09 to go and Dwyane Wade hit two free throws with 12 seconds remaining to close out the scoring.
It was Miami's 17th straight home win, one away from the franchise record. The last Miami home loss came Jan. 22.
The Heat moved within two games of Chicago for the top spot in the Eastern Conference. Wade added 19 points and Mario Chalmers had 13.
Russell Westbrook scored 28 for Oklahoma City. The Thunder found themselves just one game in front of San Antonio for the lead in the West after the Spurs won in Boston Wednesday.
Oklahoma City has lost two in a row for only the second time this season.
Those two losses have come on the heels of six straight wins, a streak that included a home victory over Miami and a road triumph over the Los Angeles Lakers.