MIAMI — Dion Waiters went from air ball to game-winner.

Waiters made a 3-pointer with 0.6 seconds left to cap his 33-point effort, and the Miami Heat beat Golden State 105-102 on Monday night to end the Warriors' seven-game winning streak.

It was the second straight game in which Waiters tied his career high, and this one came after a frantic final few minutes in which the Heat blew a 10-point lead — with a Waiters air ball of a 15-footer as part of that collapse. But he more than atoned with his last shot of the night, sending Miami to its biggest surprise of the season.

"He's not scared. He's not afraid," Heat coach Erik Spoelstra said. "He's fearless. He wants those moments as much as anybody."

Kevin Durant tied the game on a dunk with 11.7 seconds left. With no timeouts, Waiters walked the ball up the court, made a couple moves on Klay Thompson, and then connected from straightaway.

"I knew it was good," Waiters said. "He let me get to my shot."

Goran Dragic scored 19 points for Miami (15-30), which finished a 4-0 homestand. Luke Babbitt added 11, and Hassan Whiteside had 10 points and 15 rebounds.

Durant scored 27, Thompson had 22 and Stephen Curry added 21 points, 10 rebounds and eight assists for the Warriors (38-7). Curry missed a corner jumper as time expired, though referee Brian Forte signalled his attempt was a two-point try anyway.

"We get everybody's best shot," said Warriors coach Steve Kerr, who even with the loss clinched the right to coach the Western Conference in next month's All-Star Game. "Miami played great."

Waiters shot 13 for 20 from the floor, 6 for 8 from 3-point range.

"Those are tough shots that Dion made," Curry said. "He obviously played well, but we didn't do anything to help ourselves."

Miami was up 98-88 before the Warriors started rallying. Curry made a pair of free throws, Thompson hit a 3-pointer and Durant added another 3 as Golden State ran off eight straight points. Waiters answered with a 3 for the Heat, but Durant and Shaun Livingston both scored at the rim in the final minute as the Warriors closed to 101-100 with 21.4 seconds left.

Dragic made one of two free throws, and the Warriors set up a play where Durant went baseline for the tying score. But Waiters had the last make of the night.

"It's good to see guys in the locker room feel good about beating a great basketball team," Spoelstra said.

TIP-INS

Warriors: Andre Iguodala (rest) got the night off. ... Monday was the second anniversary of Thompson's NBA-record 37-point quarter against Sacramento. ... Livingston has now played more games in Miami as a member of the Warriors (three) than he did as a member of the Heat (two)

Heat: Miami was 13 for 30 from 3-point range, and survived on a night where it shot 16 for 27 from the line. ... Okaro White became the 232nd player to score in a Heat uniform, getting his first points on a putback in the second quarter.

CURRY HONORS

Curry will have a busy Tuesday in his native North Carolina.

First, his old number will be retired at Charlotte Christian High. And after that, the student section at Davidson's Belk Arena will be named in his honour at halftime of the game there against Duquesne.

JOHNSON OUT

Heat guard Tyler Johnson missed his second straight game with a left shoulder strain. It's unclear if he'll accompany Miami when the team flies to New York on Tuesday. Johnson has 14 consecutive double-digit scoring efforts off the Miami bench, the second-longest such streak in franchise history.

UP NEXT

Warriors: Visit Charlotte on Wednesday, ending a four-game trip. Curry averaged 30.8 points in six previous games at Charlotte.

Heat: Visit Brooklyn on Wednesday, starting a two-game trip that also has them facing Dwyane Wade in Chicago on Friday.