Nash had nine points and 15 assists in his third game back after missing four starts with right shoulder inflammation.
"Having him in there passing that ball is good for us. We're not a half-court team," said Raja Bell, who scored 10 points.
Marion is averaging 25 points in his three games since the All-Star break.
"The opportunities are there and sometimes they are not," he said. "I'm not forcing the issue. I'm just taking what's given to me and going with the flow of the game and the flow of the offense. ... Sometimes I can get a big night, and some nights I can't get like that. Tonight, everybody was making that extra pass."
Marion also contributed on the defensive end, where he spent the bulk of the night being part of a double-team guarding Kevin Garnett.
"We wanted to contain him a little more, but tonight everybody was helping out," he said. "We sent him some double-teams and different looks occasionally to make him work for everything he got."
Garnett, who had a season-high 44 points the last time the teams met, led Minnesota with 28 points and tied a season-high with 19 rebounds.
Randy Foye had 14 points and Ricky Davis 12 for the Timberwolves, who have lost three straight games, and allowed their second-highest point total in a game this season. Phoenix also scored the most, 131, on Jan. 21.
With the Suns up by eight, Marion blocked three Minnesota shots -- including two by Foye -- in a 23-second span late in the game, before a 3-pointer by Barbosa ended the threat.
"That is scary what he did. He did it all tonight," Phoenix coach Mike D'Antoni said. "He guarded Garnett real well and did a lot of good things."
A 3-point play by Garnett got Minnesota within five points midway through the third quarter, but a pair of 3-pointers and a dunk by Marion put the Suns up 89-78. Phoenix, which averages just under six 3-pointers per game, finished 12-of-31 from behind the arc.
"I felt like we should've slowed the pace down a little bit. We had the pace at their rate, how they want to play. That's their advantage," said Garnett, whose team is a season-low five games under .500.
"We have to stop this bleeding. The trade deadline is over. No one is going to come in here with a cape on and make anything happen," he said. "The responsibility is on us, as always."
A jumper by James Jones, who scored 16 points, early in the fourth gave Phoenix its largest lead, 100-85.
Minnesota got within eight points midway through the quarter, but Nash returned to find Jones for a layup and Barbosa, averaging 21 points in his previous four games, hit a long jumper for a 12-point cushion.
"He threw some daggers in. He is starting to do that consistently," D'Antoni said.
Two nights after coach Randy Wittman accused Minnesota players of playing selfishly in a loss to Charlotte, the Timberwolves had 10 assists on 11 first quarter baskets en route to a 30-25 lead, just the third time in 15 games under Wittman the team has led after 12 minutes.
Phoenix, winners of seven of nine against Minnesota, went on an 11-0 run for a 49-39 lead, including a behind the back pass from Nash to Marion for a layup drawing a few "aahs" from the seventh-largest crowd in Target Center history. Marion capped the stretch by stealing the ball from Jaric and driving in for a layup. A putback by Stoudemire at the buzzer gave Phoenix a 64-52 halftime lead.
"You have to have that second, third, fourth rotation against them," Wittman said. "We had it at times, but I don't think we sustained it."
The attendance was 20,196. ... Minnesota F Mark Madsen, who injured his left ankle in Wednesday's game and was walking with a crutch Friday morning, was walking with a splint around the ankle before the game. "It's responding well to treatment," he said. ... Phoenix F Boris Diaw missed his fifth straight game with a back spasms. "Hopefully I'll be able to play on this trip," he said. ... Six other NBA team mascots joined Minnesota's "Crunch" to help celebrate his birthday. The Phoenix Gorilla was not one of them.