The Heat outscored the Cavaliers 58-28 over the final 19 minutes, but almost blew a late eight-point lead in their continuing march into the NBA history book.
The victory came in front of the fans who once cheered James, but turned on him when he left for Miami prior to the 2010-11 season.
Miami's winning streak is the second-longest in the history of the league and is now nine short of the record of 33 straight victories established by the 1971-72 Los Angeles Lakers.
James scored 25 points, seized 12 rebounds and had 10 assists in pacing the Miami comeback, which saw the Heat establish a 95-86 lead with 3:01 to play.
Cleveland then ran off eight in a row to climb within one with 44 seconds to go and the Cavaliers regained the ball with a chance to take the lead.
Wayne Ellington, however, missed a jumper for Cleveland and James scored the game's final two points from the foul line with 4.7 seconds remaining. C.J. Miles failed on his 3-pointer that would have sent the game into overtime.
Ellington led the Cavaliers with 20 points. Cleveland has lost four in a row.
Reindeer recovered after escaping from Santa during lighting ceremony
Exploding whale video goes viral on Internet