PHOENIX -- Anytime the NBA's leading field-goal shooting team can win a game while hitting less than 40 percent, it knows it has accomplished something good.
"Even though we were not shooting the ball well until the fourth quarter, we got the job done," said Jared Dudley, who scored all 10 of his points in the final period.
"It wasn't pretty, but we got the win," Jason Richardson said.
"It was exactly how I thought it would be," Suns coach Alvin Gentry said. "A real grind-it-out game."
Both teams played airtight defense, as reflected in the shooting percentages. Portland was even worse than Phoenix, hitting only 38.4 percent of its shots.
The loss ended Portland's five-game winning streak and was only the Trail Blazers' second defeat in nine games. It left them in eighth place in the Western Conference.
Phoenix, meanwhile, moved into a virtual fifth-place tie with Oklahoma City in the Western Conference with its fifth win, including four in a row, in seven games during an 18-day homestand that ended Sunday. The Suns are 44-26, the first time this season they have been 18 games over .500.
Amare Stoudemire led the Suns with 18 points and 14 rebounds, ending his streak of 22 consecutive games with 19 points or more. Steve Nash had 17 points and eight assists, Jason Richardson scored 16 points, and Grant Hill finished with 12 points and 11 rebounds.
A field goal by Dudley with 6:18 remaining put the Suns ahead for good, 79-78. He followed with his second 3-pointer, making it 82-78.
After Aldridge missed two free throws, Hill scored on a layup and a jumper, giving the Suns an 86-78 advantage. The closest Portland got after that was two points, 89-87, on a 3-pointer by Roy.
Phoenix outscored Portland 29-19 in the fourth quarter with the aid of a zone defense.
"They went zone and we didn't attack that," Portland coach Nate McMillan said. "We were shooting jump shots from the perimeter. As long as you are taking shots from there, they're going to stay in and pack it in, which they did."
Miller said the Suns did the right thing by switching to a zone.
"They had to do something because we were controlling the game," he said. "Their zone kind of slowed us down. We let it affect us ..."
"We're a better defensive team than people give us credit for," Stoudemire said. "We try to improve on that every night."
Nash felt the Trail Blazers' style of play made it an uninteresting game.
"They did a good job of mucking the game up and making it a grind, which isn't necessary the way we want to play," Nash said. "But we did a good job of competing, finding a way to get baskets and stops, especially down the stretch."
The game began with a series of runs, but had little pace or rhythm because neither team was shooting well, and it was fitting that the score was tied at 47 at halftime.
With the score at 7-all, Richardson scored seven consecutive points, but the Trail Blazers countered with 19-4 burst and led 26-18. The Suns followed with nine straight points, bridging the first and second periods, inching ahead 27-26. The half was marked by 11 lead changes and seven ties.
Of the Suns' first 18 points, Richardson and Stoudemire accounted for 17, with a technical foul shot by Nash the only other point by Phoenix. In fact, Richardson and Stoudemire combined for the Suns' only seven field goals in the first period.
Camby had 10 rebounds, including four off the offensive glass, the opening quarter.
Phoenix was hurt early when Nash incurred two fouls in the first 6 minutes and sat out the next 12 minutes. When he did return, he hit four quick field goals.
Aldridge and Miller carried the offensive burden for the Trail Blazers in the first half, each scoring 12 points.
Neither the pace nor the rhythm improved in the third quarter, when the Trail Blazers shot 9 for 25 and the Suns a pathetic 4 for 22. But by the end of the quarter, Portland had a 68-64 lead, thanks to Miller, who matched the Suns' field goal production with four and scored 10 points. His driving and penetration disrupted the Suns' defense.
The Suns recalled rookie forward Earl Clark from the Iowa Energy of the NBA Development League, where he averaged 20.7 points and 9.0 rebounds while playing 34.3 minutes in three games. ... Portland swingman Rudy Fernandez did not make the trip because of a left quad strain. ... Entering Sunday's play, the Suns led the league in scoring (110.1 points per game), field-goal percentage (49.1) and 3-point field-goal percentage (40.6). ... Miller played in his 601st consecutive game, the NBA's longest active string of appearances.