PORTLAND, Ore. -- Wesley Matthews hit a 3-pointer to put Portland in front with 26.9 seconds left and the Trail Blazers hung on to beat the Miami Heat 92-90 for their fourth straight win and ninth straight at the Rose Garden.
The Blazers held LeBron James to 15 points, snapping his 54-game streak with at least 20 points that dated back to last season.
Miami led by as many as 13 points, including a 52-39 advantage at the half, but Nicolas Batum hit a layup and a free throw with 4:03 left that pulled Portland into an 82-all tie. The Blazers couldn't pull ahead and Bosh made a 3 to make it 87-84 with 1:53 left.
Matthews made a 3-pointer to tie it at 88 with just under a minute to go, and after Chris Bosh dunked Matthews hit another 3 to finally give the Blazers a 91-90 lead. LaMarcus Aldridge missed the first of two free throws with 10.4 seconds left for the final margin.
Batum led the Blazers with 28 points, and Aldridge had 20 points and 15 rebounds. Matthews finished with 18 points.
Bosh had 29 points for the Eastern Conference-leading Heat, who dropped their second straight game. Miami has lost five of eight, including an 87-77 loss to the Pacers on Tuesday night.
The Heat went into the game ranked second-to-last in the NBA with an average of 39 rebounds a game. Against the Blazers they had 45.
Portland was coming off a 125-119, overtime win over Orlando at the Rose Garden on Monday night.
The Blazers led 12-10 early, but missed eight straight shots and Miami took an 18-12 lead on Dwyane Wade's fast-break layup with 3:25 left in the first quarter. The Heat went up 32-24 on Ray Allen's 3-pointer early in the second.
The Heat extended it with a dunk by James and a hook by Wade to make it 52-39 at the half.
Bosh had nine points in the first eight minutes of the second half as the Heat kept a fairly wide margin. But Portland closed in late, when Matthews and Batum made back-to-back layups to make it 65-61. Norris Cole quieted the crowd by answering with a 3-pointer for the Heat.
Batum's 3-pointer and Matthew's fade-away jumper narrowed it to 82-79 with 4:53 left. After rookie Damian Lillard missed a couple of free throws, Batum made a layup and a free throw to tie it up.
Lillard, the reigning repeat NBA Rookie of the Month, had 10 points and eight assists and became the first NBA player to make at least 75 3-pointers in his first 35 career games since Allen Iverson in 1996-97.
The Heat were without Shane Battier, who has a sore right hamstring. The move was proactive, coach Eric Spoelstra said before the game.
"It was never a strain, it's just very sore," he said. "But those things can be tricky.”
It was the second of a six game road trip for the Heat, who fell to 7-8 on the road this season.
NOTES: Blazers coach Terry Stotts was back after missing practice on Wednesday with a flu bug. Luckily, he said, his mother was visiting." My wife was out of town so my mom took care of me," the coach said. ... The Heat signed forward Jarvis Varnado to a 10-day contract on Wednesday. Varnado played in five games earlier this season with the Boston Celtics, scoring six points in a total of 18 minutes. The Celtics waived him on Sunday. ... Portland rookie center Meyers Leonard is a ways off from returning from a sprained right ankle. "I wouldn't give him a timeline, but he's not close," Stotts said. ... Mariners pitcher Felix Hernandez was at the game.