Channing Frye's 3-point attempt rolled off the back of the rim at the buzzer, giving the Warriors their first win in Phoenix since March 18, 2005.
Golden State played all but 1 minute of the final three quarters and the entire second half without Stephen Curry, who strained a tendon in his right foot with 2:19 to play in the first quarter.
Frye had 22 points, Marcin Gortat scored 21 and Jared Dudley finished with 17 for the Suns, whose two-game winning streak was snapped.
Phoenix, behind for only 97 seconds in its previous two games, trailed the Warriors until the final 3:50 when Dudley scored on a layup off a lobbed inbounds pass to give the Suns a 96-94 lead.
Dudley also gave Phoenix its final lead, 100-99, when he scored off an offensive rebound with 2:26 to go.
The Warriors scored five straight to go back ahead 104-100, the last on Nate Robinson's basket with 1:23 to go, only to see the Suns tie the game again on a dunk by Frye with 1:03 left and Grant Hill's layup with 11.6 to go.
Golden State scored the game's first seven points and ran out to a 39-22 lead after one. The Warriors stretched the lead to as many as 21 points, 59-38, before settling for a 59-45 halftime lead.
NOTES: Curry jogged out of the locker room with a minute left in the first half and checked in for the final 18 seconds of the half, but sat out the remainder of the game. . Warriors F Ekpe Udoh was limited to one shot in 21 minutes by a left knee contusion. . Golden State's 39 first-quarter points were a season high. . The Warriors won the season series against Phoenix for the first time since 1994-95.