Phoenix improved to 22-22 with the victory and sits just outside the playoff bubble in ninth place in the Western Conference, two games back of both Houston and Denver.
"We have a belief that every player can step up," said Grant Hill, who scored 10 of his 14 points in the critical third quarter. "We have contributions up and down the roster. That's who we are and that's our identity."
Marcin Gortat scored 16 points, and Channing Frye added 15 points and 13 rebounds to help the Suns win their second straight game and improve to 8-2 since the All-Star break.
Rodney Stuckey scored 23 points to lead the Pistons, who lost for the second time in their last six games.
Phoenix trailed 80-79 to start the fourth quarter before Robin Lopez made a pair of free throws and dropped in a hook from the left base line to give the Suns an 83-80 lead. The lead changed hands five times in the fourth, but the Suns held Detroit to two points in the final 1:41 to hold on for the win.
After the Pistons tied the game at 95, Dudley scored on a putback and Frye buried a 3-pointer to put Phoenix ahead 100-97 and the Suns never trailed after that.
"We want to create a rhythm each night, and need to be aggressive," said Frye. "Right now, it's about guys making big-time plays. This was a gritty win against a very good basketball team."
Stuckey scored 17 of his points in the opening half and Brandon Knight added 14 to help Detroit take a 59-54 lead at the break.
Nash, who had 17 assists three times earlier this season, returned after missing Thursday night's win over the Clippers in Los Angeles.
"(Nash) picked us apart," said Ben Gordon, who had 10 points for Detroit. "Plus, our transition was not good and gave them easy shots. They have several guys who can shoot and that makes it tough to play against."
Phoenix started strong and finished strong. They outscored the Pistons 31-20 in the final period for their fifth win in six games.
The Suns took a 17-11 lead midway through the opening period before the Pistons broke off a 13-3 run in the second. Stuckey hit two free throws with just over 7 minutes remaining before intermission to give Detroit its first lead, 40-38.
Dudley converted a three-point play to tie it at 46 with just under 5 minutes left in the half, but the Pistons held the lead the rest of the way. Jonas Kerebko and Knight each hit a 3-pointer in the closing minutes of the second quarter to keep Detroit ahead.
The Suns came out stronger in the second half. After Hill hit two jumpers and buried a 3-pointer with 4 minutes left in the third period, the Suns tied it at 70.
"We did manage to tie at 95 and the good thing is that we were in it," said Pistons coach Lawrence Frank. "Then we needed to get the stops, and that didn't happen. They came up with quality possessions, and generally beat us to the ball."
With a month and one half left in the regular season, there is developing sense of urgency and quicker step in the Suns' execution.
"At this point, we need to focus at the task at hand," said Phoenix coach Alvin Gentry. "At times, we've come up short, but we're not taking one game at a time. Our goal right now is to focus on the immediate task."
The Suns won a season-high three straight for the second time this season. ... After hitting no 3-pointers in his last two games, Knight's four 3s led Detroit, which hit 17 from long range on the night.