"It's going to be tough," Nash said. "I haven't played basketball in a long, long time and then to have only two weeks of camp. Today would normally have preseason game number seven. It's going to take some time."
Jared Dudley had 15 points, and Channing Frye and Shannon Brown added 10 each for the Suns, who have won two of three overall and six straight against the Warriors. Phoenix has not lost to Golden State at home since March 8, 2005, a 13-game stretch.
"We just kind of grinded it out," Suns coach Alvin Gentry said. "We're not shooting the ball the way we're capable of shooting it but we shot a lot better today."
Monta Ellis had 18 points, Dominic McGuire scored 14 and Brandon Rush finished with 13 points for the Warriors, who lost their first road game after opening the season with four in a row at home.
"You shoot 50 percent on the road, you should come out ahead with a win," said Warriors coach Mark Jackson. "You put teams on the foul line, turn the basketball over and give up 16 offensive rebounds, it's a recipe for disaster.
"I understand this is a process but this is a 66-game season and we need to speed up the process," Jackson said. "I will find guys that are playing well, competing and executing the game plan and if that means playing five guys 48 minutes, I will."
Golden State was without second-leading scorer and top rebounder David Lee, who was a late scratch after being hospitalized earlier Monday with an undetermined illness. Lee was receiving intravenous fluids at the hospital as doctors worked to determine if he had food poisoning, the flu or another virus.
The Warriors started the second half on an 8-0 run to take a 55-51 lead with 9:10 left in the third quarter, aided by the Suns' 0-for-5 shooting and two turnovers.
But then the Suns started to click, connecting on eight of their next 12 field-goal attempts and opening a 70-61 lead with 3:21 left in the quarter.
Morris helped serve as the catalyst, scoring on a layup and hitting a 3-pointer on consecutive possessions during Phoenix's run.
"I'm learning but I'm picking it up fast," Morris said. "I'm trying not to speed through things, to take my time, don't get too high or too low, just keep it leveled out."
Phoenix led 72-69 at the end of the third then scored the first nine points of the fourth, including a basket and two free throws by Hakim Warrick, to take an 81-69 lead with 8:25 to play.
The Warriors closed to 83-80 on Brandon Rush's 3-pointer with 5:24 to go. But Nash had a pair of 3-pointers, and Dudley and Frye each added another to give the Suns a 94-83 lead with 2:23 left.
"Channing hit a big three and they had two straight possessions where they got buckets and they increased the lead and we had to start pressing from them on," said Stephen Curry, who scored 10 points while being limited to 23 minutes by game-long foul trouble. "We just needed those stops."
After making only 1 of 10 3-pointers in the first half, the Suns connected on 7 of 13 in the second half.
Morris had 11 points and all eight Suns who played scored for Phoenix in the first half en route to a 51-47 halftime lead.
After the game, Phoenix waived C Garret Siler. Siler, a second-year player out of Augusta State, had not played in any of the Suns' first five games. . Morris is the Suns' first rookie with at least two double-digit scoring games in his first five games since Amar'e Stoudemire in 2002. ... Phoenix finished the first quarter with more successful free throws (nine) than field goals (eight). . G Michael Rudd, signed by the Suns on Thursday, was inactive for the second consecutive game.