Grant Hill scored 12 and Mickael Pietrus added 11 points for Phoenix, which snapped a four-game skid.
Ben Gordon led the Pistons with 19 points and six rebounds. Tayshaun Prince finished with 12 points and Charlie Villanueva scored 10 for the Pistons, who have dropped three of four.
Phoenix held a 24-14 lead after the first, and widened its margin to 50-32 at the half, behind a 6-of-10 effort from beyond the arc in the second quarter.
Hill connected on the back end of two from the line just under the six minute mark of the third to put Phoenix up 62-41, but Villanueva's short hook shot at the far end started a 17-6 Detroit run to end the quarter.
Prince hit a mid-range and running jump shots to extend the run, but two Steve Nash three's -- surrounding a Ben Wallace layup -- put the game at 68-49. Another Villanueva basket at 2:08 continued the spurt. and after two Gordon jumpers the lead was down to 68-55.
Tracy McGrady capped the run with a long three inside the final minute. The Pistons outscored the Suns 26-18 in the quarter, and cut the Phoenix lead to 68-58 entering the final stanza.
Phoenix started the fourth on a 15-2 run, capped by a Channing Frye jumper, and the Suns advantage stayed around 20 down the stretch.
The Suns made 12-of-18 from the line, Detroit was 8-of-18...Both Goran Dragic and Frye finished with eight points in the win...Both teams scored 11 second chance points...Austin Daye added nine points and eight rebounds in a reserve role for Detroit.