Miami's defense limited the Bucks' shooting percentage, but turnovers were too much to overcome.
"They shot 40 percent from the floor, but we turned the ball over 20-plus times and they got over 20-plus points off those turnovers," James said. "That's not going to be winning basketball."
James had a team-high six turnovers out of the 21 that led to 25 points for Milwaukee. The Heat shot 43.3 percent (33 of 76).
"I had six turnovers and I can't stand when I turn the ball over," James said. "When you're on the road against a team that is sound defensively, you can't give them extra possessions because they're going to make you pay."
James led the way as Miami erased a 15-point deficit, outscoring the Bucks 27-13 in the third to take a 71-69 lead into the fourth. James scored 14 points in that quarter while Milwaukee missed 17 of its first 19 shots.
"The second half we came out a little stagnant," Dunleavy said. "We stopped pushing the ball and getting out in transition."
Fortunately for the Bucks, they got going late in the third and kept it up all through the fourth.
"A few minutes to go in the third, we were moving the ball up and down, getting some stops," Dunleavy said. "Just kept going, building on the lead."
After leading 56-44 at halftime, Milwaukee missed its first 12 shots in the second half, six of them by Ellis, while the Heat pulled to 56-55. Jennings hit a 14-foot jumper to snap the streak, but James hit a 3 to tie the game and a jumper that gave Miami its first lead, 60-58.
"Then we came out to start the third and missed a couple layups and some shots, but also just kind of started walking up and down the floor," Bucks coach Scott Skiles said. "That's really not our game."
Jennings had 16 points on 5-of-7 shooting, six assists and three steals in the first half.
NOTES: Miami F Udonis Haslem missed the game. He hurt his right shoulder early in the Detroit game when he landed hard after an acrobatic block on Kyle Singler. Haslem stayed in the game and finished with seven points and two rebounds in 20:29. Shane Battier started in his place. ... Wade tied Haslem for the Heat record with 620 games played. ... Milwaukee came in having alternated between wins and losses over the last seven games. ... It was the Bucks' first sellout of the season.