PORTLAND, Ore. -- Carmelo Anthony had the hot hand and plenty of help when he needed it.
Anthony tied a season high with 37 points and New York's reserves sparked a rally from a 10-point, fourth-quarter deficit to beat the Portland Trail Blazers 112-110 on Saturday night.
Anthony, who scored 20 points in the first half, shot 13 of 21 from the field as New York ended a four-game losing streak. He didn't score in the fourth quarter until making six free throws during the final 30 seconds as reserves such as Lance Thomas and Kyle O'Quinn helped fuel the rally.
More from FoxSports
Thomas scored seven of his 13 points and O'Quinn six of his 14 points during the fourth quarter.
"Their bench was obviously the difference. They had 46 (points) off the bench. All their bench players contributed. ... they had a lot of energy," Portland coach Terry Stotts said.
No one was more impressed with the reserves than Anthony.
"Tonight our bench was phenomenal. When we were down 10, it was them that stepped up big time," Anthony said.
Former Blazers Robin Lopez and Arron Afflalo, returning to Portland for the first time since leaving the team in free agency last summer, were among six Knicks in double figures. Afflalo scored 15 points, while Lopez had 14 points and seven rebounds.
The Knicks outscored the Blazers 36-24 in the fourth quarter to pull out the finale of a three-game road trip.
"Third game in four nights, things have not been going well. It would have been easy to say, `We'll get them next time' and feel sorry for yourself," coach Derek Fisher said. "They decided they wanted to win."
Damian Lillard led Portland with 29 points but missed a 3-pointer at the buzzer that would have won the game after he chased down the rebound of his intentionally missed free throw.
"From where I was standing, I thought it was going in," Lillard said.
New York started the fourth quarter on a 12-2 run to erase Portland's lead. Then, trailing 92-91, the Knicks regained the lead on back-to-back baskets by O'Quinn.
New York built the lead to six points on several occasions, but needed Anthony's free throws to hold on.
C.J. McCollum scored 22 points and Allen Crabbe 15 for the Blazers.
Portland never trailed in the first half and led 56-55 at halftime.
The Blazers took a 20-9 lead midway through the first quarter when a layup by Mason Plumlee capped a string of eight consecutive points. Crabbe had a pair of baskets during a 7-0 run early in the second quarter that gave the Blazers a 40-30 lead.
The Blazers briefly gave up the lead early in the third quarter when New York ran off nine consecutive points, including five by Anthony, to take a 64-59 lead. But the Blazers put together a pair of 8-0 runs later in the quarter to grab an 86-76 advantage heading into the fourth quarter.
Knicks: New York ended a six-game losing streak to Portland. The Knicks' last win over the Blazers came on March 12, 2012. ... Rookie sensation Kristaps Porzingis missed six shots and went scoreless in 19 minutes for New York. Porzingis was averaging 14.1 points. ... Afflalo has scored in double figures in 11 of his past 14 games. ... Lopez scored in double figures for the first time in 10 games.
Blazers: Lillard became the first Blazer since Clyde Drexler in 1991-92 to score 600 points and hand out 150 assists during the team's first 25 games. ... Portland still has yet to win back-to-back home games this season. ... McCollum has scored at least 20 points in three consecutive games, a career first.
REUNION GAMES NO FUN
Portland lost starters LaMarcus Aldridge, Wesley Matthews, Nicolas Batum and Lopez to free agency or trade off last year's team. Lopez is the final of those four players to face the Blazers in a reunion game this season. Portland 0-5 in such games. Stotts says such matchups are for fans and the media. "It's more about the team than the individual for us," Stotts said.
Knicks: Host Minnesota on Wednesday.
Blazers: Host New Orleans on Monday.