MIAMI (AP) -- LeBron James finished with 29 points, nine assists and eight rebounds, Dwyane Wade scored 21, and the Miami Heat survived a frantic finish to beat the Oklahoma City Thunder 103-97 in an NBA Finals rematch on Tuesday.
Mario Chalmers scored a season-high 20 for the Heat, who matched the franchise's best 25-game start at 19-6. Chris Bosh added 16 for Miami, which has beaten the Thunder five straight times going back to last June's title series.
Kevin Durant scored 33 points and Russell Westbrook added 21 for Oklahoma City, but both Thunder stars missed potentially game-tying 3-point attempts in the final seconds. Serge Ibaka and Kevin Martin each added 15 for the Thunder, who have dropped two straight for the first time this season.
The Heat went 19 for 19 from the foul line, the second-best effort in franchise history. They were 30 for 30 at Boston on March 24, 1993.
And it was a wild finals rematch - one that lived up to expectations.
There was a fast start by the reigning champions, a one-handed dunk by James on an offensive rebound that will be added to his copious highlight reel, a scrum after a hard foul that led to double-technicals on Wade and Ibaka early in the fourth, an easy rally by the Thunder from an early double-digit deficit, and even a jawing match between Durant and James in the final minutes.
Such was the intensity that James slumped over the scorer's table with 1:08 left, exhausted.
Oh, and there was a wild finish, as well.
Wade lost the ball on an ill-advised, behind-the-back dribble, and the turnover set up Durant for a two-handed dunk that got the Thunder within 96-95 with 44.1 seconds remaining.
Needing a stop on the next trip, the Thunder forgot to play defense instead. Kendrick Perkins and Ibaka both were confused on the ensuing Miami possession, and Bosh was left alone to take a pass from James and throw down a dunk that restored Miami's three-point edge.
Oklahoma City got within one when Durant made a jumper over James, but no closer. Ray Allen's two free throws with 15.6 seconds left made it 100-97, and Miami's last three points came from the line after a Thunder foul and Westbrook getting hit with a technical for punching a table after arguing that he was fouled on his 3-point try in the final moments.
While the stars were stars, the Heat got help from one unexpected source. Chalmers was making everything, even unintended plays.
Allen lost possession on what looked to be a pass to no one, but Chalmers picked up the bouncing ball on the right wing, whirled and made a 3-pointer - putting Miami up 86-79 with 8:14 left.
In the end, that cushion was necessary.
The Heat came out flying, opening a quick 13-2 lead after making six of their first seven shots. About all that didn't go right for the Heat early on was James committing a foul, the first time he was called for a personal since Dec. 8.
It happened 4:03 into the game - 254 minutes and 7 seconds of on-court time since his last one - when James fouled Ibaka on a dunk attempt.
Chalmers had 12 points, matching his season high, in the opening quarter alone, and that was also Miami's lead after his layup for a 15-3 edge. When Durant headed to the bench after being called for his second personal, plus a technical, with 2:08 left in the first, the Heat led 27-16.
But even with Durant out, Oklahoma City scored the last eight points of the quarter, six of those coming from the line in what became a theme.
The Thunder shot 17 of the game's first 18 free throws, with Miami's lone attempt coming on Durant's technical. No Heat player went to the line after a shooting foul until James scored while being hit with 2:47 left in the half. By the early portion of the third quarter, the free-throw difference was 22-2 in favor of Oklahoma City.
It helped the Thunder shake off that slow start.
Miami's lead was 54-48 at the half, but the Heat were held to two points in the first 5:05 of the third, and the Thunder grabbed the lead for the first time. Durant went left, connected on a baseline jumper while falling out of bounds and getting fouled by James. The resulting free throw gave Oklahoma City a 58-56 edge.
With that, the back-and-forth began, with five ties in the next 5 minutes alone, and the Heat held a 74-72 lead entering the fourth.
NOTES: James scored at least 20 points for the 30th straight regular-season game and 46th overall. ... Wade is 7-1 on Christmas, and James has won six straight on the holiday. ... Mike Miller became the 48th active player to reach the 10,000-point mark when he made a 3-pointer early in the second quarter. He is the sixth current Heat player with 10,000 points. ... The Thunder have used the same starting lineup for all 27 games this season. ... James passed Bernard King for 39th on the NBA career scoring list. ... Attendance was 20,300, the largest crowd for a Heat home game since they moved into AmericanAirlines Arena.