New York shot 50% (40 of 80), made 32 of 39 field throws, and led by as many as 33 points in the fourth quarter.
"I liked our offense in the first half, and then we got our defense going in the second half," Knicks coach Tom Thibodeau said. "But the offense was really good. The bench was really good. Starters played well. It was a good, balanced attack."
It was New York's first win at home in more than a month after losing five straight. Their last Madison Square Garden victory was on Jan. 31 over Sacramento.
The win over the depleted Trail Blazers moved the Knicks within five games of Atlanta for the 10th and final play-in spot for the playoffs with 13 games remaining in the regular season.
"It did feel good to be at home, also to get a win. It doesn't really matter who they have out there on the court," said Barrett, who shot 10 for 20 and hit five of New York's 15 3-pointers. "Anybody that is playing in an NBA game is good and deserves respect. Last time we were up big and they came back and beat us. This was also a little more personal, this game."
Jason Hart scored 17 points and Drew Eubanks had 10 points and nine rebounds for the Trail Blazers, who have lost eight of nine and six in a row on the road.
"It was tough the entire time, similar to the first time we played them," Portland coach Chauncey Billups said. "Their physicality had an impact on us early in the game. Took us out of our play calls, but we were in there doing OK. Obviously, Barrett had a really good first half."
Barrett scored 21 points on 8-for-14 shooting to help the Knicks take a 66-55 lead at halftime.
New York outscored the Trail Blazers 7-2 to open the second half and extend the lead to 74-57. Portland then took advantage of three Knicks turnovers over a four-minute span and scored eight straight points to cut the deficit to 78-70.
But following a timeout, the Knicks went on a 9-2 spurt, capped by a Barrett dunk that put New York up by 15.
Eubanks found Keon Johnson on the other end for a dunk, but the Knicks closed the quarter on an 8-0 run paced by six points from Randle and pulled away to the victory.
Trail Blazers: Reserve Kris Dunn scored 13 points on 6-for-9 shooting and added a team-high seven assists. ... Justise Winslow, who had been out since Feb. 24 due to soreness in his right Achilles tendon, played 18 minutes and had seven points on 3-for-10 shooting with seven rebounds.
Knicks: New York went 0-5 at home in February. Wednesday night's game was the first home game in March after playing the first seven games of the month on the road. They went 3-4 during that stretch.
Evan Fournier became the second player in Knicks history to surpass 200 made 3-pointers in a season. With 201 made shots from long distance, Fournier is just 16 away from breaking the franchise record set by John Starks during the 1994-95 season.
"When you look at shot profile, it's very good. For any off guard, it's finding rhythm. Your timing is basically rhythm, that for a shooter it's critical," Thibodeau said. "So, I think his teammates are looking for him more, he knows when it's coming more. And I think it's been good. So, I think there's still work to be done where we can take advantage of him more."
Trail Blazers: Will remain in New York and visit the Brooklyn Nets on Friday night.
Knicks: Host the Washington Wizards on Friday night.