Bryant, who played all 48 minutes in Thursday night's loss to the Los Angeles Clippers, was 7-for-26 from the field for 17 points against Phoenix, far short of his NBA-leading 31.5-point point average.
"Kobe was not his normal self," Lakers coach Phil Jackson said. "He didn't have the energy, it looked like."
Bryant missed three shots in the final 35 seconds, two of them 3-pointers.
"They did a good job defensively of sending two guys over," Bryant said. "You've got to shoot through two guys. A lot of times for us to win as of late, I've got to be on. If that shot's not on, we really struggle to win ballgames."
This might have been a preview of a first-round playoff matchup, if the Lakers can stop their free fall.
Los Angeles has lost four in a row and eight of 10 to drop to .500 for the first time this season.
With two to play, the Lakers have an ever-more-tenuous hold on the No. 7 spot in the Western Conference, a half-game ahead of Golden State and the Clippers.
"I think we have to win both of our last two games, personally," Jackson said.
The Suns, meanwhile, won their fourth in a row and seventh in eight games to reach the 60-win mark for the third time in team history. They can set a franchise record for victories by sweeping their last three games.
The Suns shot a season-worst 38.2 percent.
"We shot 38 percent and we won a game," Phoenix coach Mike D'Antoni said. "I think that definitely's the news. Our defense was stellar, and Raja Bell, I don't know how you can play better defense than he did."
Bell, the primary defender on Bryant, was careful not to take much credit, though.
"He played last night, and I'm sure his legs were tired," Bell said. "I'm just going to stick to my guns and say when I play him, I just try to make him work. Sometimes it might work out, and other times he might get 50, but the theme stays the same -- just try to make him work."
Nash sealed it with four free throws in the last 18.8 seconds.
Amare Stoudemire had 15 points and 16 rebounds, including five points in the final 3:47, to help keep the Suns two games ahead of San Antonio with three to play in the fight for the No. 2 playoff spot in the Western Conference.
Bell added 18 points and Shawn Marion 16 points and 11 rebounds for the Suns. Their 93-point effort was their second-lowest total in a victory this season. The only lower one was a 92-83 victory over New Orleans on Nov. 22.
"It wasn't a real smooth or fortuitous night offensively," Nash said, "but you've got to scrap in those situations and we did that. Defensively we really hustled, and that was the difference."
Boris Diaw scored four in a 13-0 Suns' run that was capped by Nash's free throw following a technical foul on Jackson, and Phoenix led 72-56 with 3:59 left in the third quarter.
Walton made a 3-pointer in a 7-0 spurt that cut it to 72-63 after Ronny Turiaf's 16-footer with 2:35 left in the third. But Marion sank a 9-footer and scored on a rebound to put the Suns ahead 76-63 entering the fourth.
Los Angeles rallied in the fourth quarter to cut the lead to five several times, the last at 88-83 on Odom's layup with 1:58 to play. Neither team scored again until Stoudemire, who was just 4-of-16 shooting, made one of two free throws to put Phoenix up 89-83 34 seconds from the finish.
Bryant threw up a 3-point airball on the Lakers' next possession, and Nash's two free throws with 18.8 seconds to play to put the Suns ahead 91-83. Turiaf's stuff cut it to 91-85, then Nash capped it with two more free throws with 12.3 seconds to play.
Bryant was 5-for-15 shooting in the first half and 2-for-11 in the second.
- Jackson has never coached a team that finished with a losing record.
- The Lakers haven't won a regular season game in Phoenix since Feb. 22, 2004. They've lost six since then.
- James Jones got his second start in a row, and fourth of the season, for Phoenix but was 0-for-6 shooting, 0-for-5 on 3s.