LaMarcus Aldridge added 18 points and eight rebounds for the Blazers (3-3), who extended their modest winning streak to three games after dropping the first three of the season.
Josh Howard had 20 points for Dallas (4-2), which had won its last three.
Dallas had won the previous 13 games against the Trail Blazers, a streak dating to the 2003-4 season, including a six-game winning streak at the Rose Garden.
"This is a huge win for us. We said it was a statement game for us," said Roy, last season's Rookie of the Year. "We didn't care how Dallas was going to come in here and play, we just wanted to play with a big effort. They beat us 13 times and we didn't want it to be 14."
The streak was a franchise record for the Mavericks over a single opponent. It was the Trail Blazers' fourth-worst losing streak against an opponent -- they lost 17 straight to the Los Angeles Lakers in their early expansion years.
The Blazers held Dirk Nowitzki to 11 points, although last season's MVP had nine rebounds. He looked tired and hit just four of 13 field goals.
Nowitzki came into the game averaging 21.6 points.
The Blazers led by as many as 18 points, paced by Roy, and shot 50 percent from the floor. The Mavericks shot 35.4 percent.
"We missed a lot of shots," Howard said. "I don't think we could buy a basket tonight."
The Blazers led by as many as eight points in the first half, and while the Mavericks kept it close, they were never able to pull out in front.
The Blazers, who led 49-42 at the break, extended the lead to 53-42 on Roy's jumper from the corner.
Roy' 3-pointer put Portland ahead 59-44. Another 3-pointer put the Blazers up 88-70 in the final quarter.
"I think Brandon had one of his better games from wire-to-wire. I didn't think he forced it," Blazers coach Nate McMillan said. "Tonight he got it going early and just continued to the end. He was just more consistent, sometimes he's had cold halves and then takes over late. Tonight I thought he developed a flow to his game throughout."
As time wound down, the fans at the Rose Garden awarded the Blazers with a standing ovation. Roy, last season's Rookie of the Year, raised his fists to the sky.
Travis Outlaw had 14 points and 10 rebounds.
The Mavericks were without guard Devin Harris, who was not with the team to attend to personal matters. Dallas started Jose Barea in his place.
The Mavericks were coming off a 120-115 victory over the Golden State Warriors on Thursday.
"We just didn't have it tonight," Dallas coach Avery Johnson said. "The other team was better. We can't just show up and expect to win. We need our hard hats on and our thinking caps on every night and we just didn't have it tonight."
The Blazers were coming off a 110-98 victory over Memphis on Friday night.
Dallas G Jason Terry is the cousin of Blazers forward Martell Webster. ... Before the game, Roy formally received his Rookie of the Year trophy from last season. ... The Blazers won 13 games straight against the Mavericks from 1991-94. ... Roy's previous career best was 29 points.