The Miami Heat players celebrate

Dion Waiters scored a last-gasp three-pointer as the Miami Heat stunned the Golden State Warriors 105-102 to snap the NBA pace-setters' seven-game win streak.

Waiters on Monday led the scoring with 33 points as Miami notched their fourth consecutive victory in a dramatic finale at the American Airlines Arena.

It was the second straight game that Waiters had scored a career-high 33 points.

"These are the moments you want to live for, especially against a great team like that," Waiters said. "I'm in a zone right now,"

Heat coach Erik Spoelstra agreed with Waiters assessment of his performance.

"He's not scared," Spoelstra said. "He wants those moments as much as anybody. He's been pestering me on those kind of deals, wanting those opportunities in the fourth quarter. He and I go at it all the time."

The Heat were made to sweat for the victory, and came within a whisker of surrendering the initiative after the Warriors put together a 12-3 scoring run to go within one point with just over 21 seconds left.

The Heat improved to 15-30 with the win while the Warriors fell to 38-7.

Kevin Durant led the scoring for Golden State with 27 points while Klay Thompson finished with 22 and Stephen Curry 21.

- 'We were soft' -

"We did not lose this game in the last three or four minutes -- we were soft tonight," Warriors coach Steve Kerr said. "We did not execute defensively...they were the smarter and tougher team tonight."

In New Orleans meanwhile, LeBron James posted a triple double and Kyrie Irving exploded for 49 points yet the Cleveland Cavaliers duo still finished on the losing side against an inspired Pelicans who ran out 124-122 winners.

New Orleans had gone into the game missing injured star Anthony Davis.

But Terrence Jones proved a more than able deputy, pouring in a career-high 36 points while Jrue Holiday produced 33 points and 10 assists to seal victory despite a dogged Cleveland fightback.

The defeat was the Cavs' sixth in their past 10 games, and left them on 30-13. The Pelicans improved to 18-27 with the win.

"We've got to figure it out. It's been a crappy 2017 so far," said James, who finished with 26 points, 10 rebounds and 12 assists.

"I'm not complaining, but right now we're just trying to get out of a hole," James added.

"Coach'll figure it out, and we've got to figure it out as far as minutes, too. We've just got to be better as a team."

- Westbrook triple -

 

"It's not about how many minutes I'm playing right now or being fresh down the stretch. We've got to be good right now, and we're not winning."

Pelicans coach Alvin Gentry meanwhile was happy at how his team had bounced back after a 143-114 drubbing on Friday by the Brooklyn Nets, the worst team in the NBA.

"I just thought it was a game that we competed like crazy and played hard and then got a lead, knowing at some stage they were going to make a run," Gentry said of Monday's win.

Elsewhere Monday, Russell Westbrook delivered a jumper with 1.4 seconds left on the clock -- and his incredible 22nd triple-double of the season -- as the Oklahoma City Thunder shaded the Utah Jazz 97-95 in Salt Lake City.

Westbrook finished with 38 points, 10 assists and 10 rebounds. Victor Oladipo scored 18 points while Enes Kanter added 14 off the bench.

The Thunder win ended Utah's six-game winning streak and saw Oklahoma City improve to 26-19. Utah are 29-17 for the season.