SALT LAKE CITY (AP) -- LeBron James had the ball and a chance to finish a furious rally that would extend Miami's winning streak.
Instead, he left it up to Udonis Haslem.
Haslem missed a long jumper just before the buzzer, and the Utah Jazz help on for a 99-98 victory on Friday night that snapped the Heat's nine-game winning streak.
James had 35 points - 17 in the fourth quarter - 10 rebounds, six assists and three blocked shots. He kicked the ball out to Haslem as Josh Howard and Paul Millsap converged on him and felt he made the right call because Haslem had a good look at the basket.
"I just try to make the right plays and do what it takes to win basketball games," James said. "At the end of the day, games are not lost on one shot at the end or me not taking a shot. But I know the chatter will begin. I wanted that game as bad as anyone else on that floor."
Devin Harris converted the go-ahead, three-point play with 4.5 seconds left. He wasn't planning to shoot, but center Al Jefferson was double-teamed and kicked it back out to the point guard, who made a runner in the lane while being fouled.
"I gave Al a funny look because I wasn't expecting to get the ball back that early," Harris said. "It really wasn't a true double-team. But he has confidence in me and he's been telling me all night he was going to kick it back out. He wants to be Magic Johnson, so we'll let him be Magic for tonight."
Dwyane Wade chipped in 31 points and six rebounds. Shane Battier also added 18 points for the Heat (28-8), who were playing without All-Star Chris Bosh.
"We are a very confident team," Wade said. "We never feel like we are out of the game. You just have to keep chipping away. We have guys that can make plays on both ends of the floor, so we are always very confident that we can get back into the game, especially on the road, to give ourselves the opportunity to win."
Miami had won all nine games in its streak by more than 10 points.
"We gave ourselves an opportunity to win," Wade said. "A lot of things didn't go in our favor, but we did what we wanted to do to be there in the end."
Al Jefferson came up with 20 points and six rebounds to lead the Jazz (17-18) to their second straight win. Five other players scored in double figures for Utah, led by C.J. Miles with 14 points off the bench.
James led a big fourth-quarter rally, making the go-ahead 3-pointer and then adding a long jumper to give the Heat a 97-94 lead with 26 seconds left. Miami had a chance to put it away, but Wade missed a free throw down the stretch and that put Harris in a position to tie the game or give the Jazz the lead.
"You think you have him under control," Jazz coach Tyrone Corbin said. "And then you get in the third quarter when the game was getting out of hand for them, and he just made plays for the rest of the quarter and the rest of the game. Some of those shots he made, there couldn't have been any better defense on him."
Utah dominated Miami in the first half in a fashion. The Jazz collected 29 rebounds compared to 13 for Miami. They grabbed two more offensive rebounds than the total rebounds the Heat collected as a team. Utah totaled 36 points in the paint versus 14 for Miami and scored 20 second-chance points compared to five for the Heat.
Battier burned the Jazz from the perimeter throughout the first quarter. The veteran forward buried all four 3-pointers he attempted in the first quarter and it helped the Heat carve out a 21-16 lead. Miami needed every one of those points to keep pace with a Utah team that sliced to the basket at will and controlled the paint early.
The Jazz had 16 points in the paint in the first quarter alone. They also scored seven second-chance points and grabbed 12 rebounds. Utah's effort around the glass paid off when Enes Kanter grabbed an offensive rebound, tossed up a short layup and converted the ensuing free throw to give the Jazz a 27-26 lead going into the second quarter.
"We played all-around good defense and communication is the key to that," Howard said. "Guys were talking to each other and our good defense created good offense for us."
Utah's dominance in the paint continued into the second quarter. Between a thundering dunk from Derrick Favors and layups from Kanter, Miles and Alec Burks, the Jazz picked apart Miami's interior defense and used an 18-4 run to take a 42-30 lead. A pair of jumpers from Jefferson and a driving layup by Harris helped push it to a 53-36 advantage for Utah with 2:21 left before halftime.
The Jazz pushed their lead to 74-56 midway through the third quarter after Gordon Hayward made three straight baskets and set up Harris on a 3-pointer to cap a 13-4 Utah run.
Miami rallied toward the end of the quarter behind Wade and James. Wade made a couple of key baskets to shift momentum back to the Heat. James built the pressure on the Jazz by answering every potentially big basket from Utah with one of his own.
James made six baskets over a five-minute stretch spanning the third and fourth quarters to cut the Jazz lead to 85-79 with 8:17 left. He accounted for 12 of 14 points scored during that stretch. He later made a pair of baskets on back-to-back possessions to tie it at 88 with 4:48 remaining.