It was, in the end, the best of both James and Butler.
James closed with 40 points, 13 rebounds and seven assists, supported by 28 points and 12 rebounds from Anthony Davis.
Butler was supported by 26 points from Duncan Robinson, 14 from Kendrick Nunn, 13 from Bam Adebayo, 11 from Jae Crowder and 10 from Tyler Herro.
The Heat moved to an early 11-point lead and were up 25-24 at the end of the first quarter, 60-54 at half-time and 88-82 going into the fourth.
A three-pointer by Robinson with three minutes and 16 seconds to play put the Heat up 101-99, with a pair of James free throws with 2:52 to play tying it 101-101.
From there, a jumper by Butler put the Heat up 103-101, before a lay-up by James, with 1:34 left, tied it 103-103. Fouled on that play, James finished off the three-point play for a 104-103 Lakers lead.
Baskets by Butler and James followed, leaving the Lakers up 106-105 with 58.2 seconds to play.
Then, with 46.7 seconds to go, Butler got to the line. At nine of nine from the line to that stage, Butler made both foul shots for a 107-106 Heat lead.
A put-back lay-up by Davis with 21.8 seconds to play off an errant Lakers’ three-point attempt gave the Lakers the lead back, at 108-107.
But back came Butler, getting to the line with 16.8 seconds left, making both for a 109-108 Heat lead.
A missed three-pointer by the Lakers’ Danny Green followed, as the Heat held on.