Nowitzki added 10 rebounds and was 17 for 17 from the free throw line for the Mavericks, who needed both the victory over Portland and a Memphis win over the Spurs. The Grizzlies obliged earlier in the night by winning 107-99 at San Antonio.
Nowitzki hit a 3-pointer with 2:43 left that put Dallas up 77-68 and all but sealed a contentious game that had the sellout crowd at the Rose Garden mercilessly jeering the officials.
LaMarcus Aldridge had 27 points for the Blazers, who had won the three previous meetings with the Mavericks this season.
Dallas is in a battle for the No. 2 seed in the Western Conference with Utah, Denver and Phoenix. The Blazers are at the bottom half of the standings with San Antonio and Oklahoma City, all of whom are trying to avoid a first-round matchup with the defending NBA champion Lakers.
The Mavericks were without Shawn Marion, who missed his second straight game with a left oblique strain.
The game was marred by questionable calls on both sides, including a pair of technicals late against Portland. The Blazers got visibly frustrated, as did the crowd. Security had to remove several courtside fans.
There was a scuffle late in the first quarter between Portland's Juwan Howard and Dallas' Eduardo Najera.
Replays showed that Najera elbowed Howard on the Mavericks' end. On the way back down the court, the two got into a shoving match. Teammate Jason Kidd restrained Najera, and Howard was eventually given an offensive foul and a technical for unsportsmanlike conduct.
A short time later, Portland's Rudy Fernandez drew a technical foul and the sold-out Rose Garden loudly booed the officials.