PHOENIX -- Wally Szczerbiak took the ball out of bounds, found no one open, and called timeout.
Oops. His team had no timeouts left.
"Now I know how Chris Webber felt in the NCAA Tournament," Szczerbiak said, recalling that long-ago error that helped cost Michigan the national title.
The Suns went 32-of-32 at the foul line, one shy of the franchise record, including three by Steve Nash at the end.
Seattle trailed 100-99 and had the ball out of bounds beneath its own basket, but Szczerbiak could find no one open and signaled timeout. However, the Sonics didn't have any left, resulting in a technical foul.
Nash made the free throw, then Phoenix retained possession by rule. Nash was fouled and made both from the line to provide the final margin.
Amare Stoudemire scored 33, including 15-of-15 at the line, to lead the Suns, who have yet to be joined by newly acquired Shaquille O'Neal. Grant Hill added 16 points, Leandro Barbosa 15, Raja Bell 14 and Nash 13. Nash also had 10 assists.
Chris Wilcox led the Sonics with 22 points. Szczerbiak added 13.
O'Neal, out the past two weeks with a hip injury, has returned to Miami but is expected to be back Sunday. Coach Mike D'Antoni would not rule out Shaq playing Wednesday at Golden State or Thursday at home against Dallas.
"I think there were a lot of distractions going on, obviously, and we were not real sharp," D'Antoni said. "Yesterday we took the day off completely, and you know, we found a way to win."
Phoenix struggled throughout but seemed finally in control with a 98-90 lead after Boris Diaw's 16-footer with 2:58 to play. But the Sonics, winners of four of their previous five, scored the next nine to go ahead 99-98 on Wilcox's driving 9-footer with 1:04 left.
Diaw missed a drive to the basket but got his own rebound, then Hill's 16-footer bounced a few times on the rim before going in with 28.7 seconds to play to put Phoenix back ahead, 100-99.
"I didn't know we didn't have any timeouts and that's my fault," Szczerbiak said, "but we allowed Boris to get a big offensive rebound, and Grant hit that shot that hung up there forever, I think it bounced three times. It just wasn't to be for us tonight."
Seattle got two good chances but Wilcox missed from in close, then Johan Petro missed a tip-in. The ball was knocked out of bounds by Phoenix, setting up the mistake that allowed the Suns to escape.
"We're really disappointed," Sonics coach P.J. Carlesimo said. "We wasted a great defensive effort."
The Suns were lousy on 3s (3-for-15), but perfect on 1s.
Phoenix just missed the franchise record of free throws made without a miss, 33, set against Detroit on Dec. 23, 1980.
Somebody noted that those records will be safe once O'Neal, a notoriously poor free throw shooter, starts to play.
"I don't think we'll be setting any records," D'Antoni said, "but he makes them when we need them. That's what he said."
Stoudemire was two free throws shy of the individual record, 17-of-17, set by Paul Silas on Jan. 10, 1971.
"We were just focused on the stripe," Stoudemire said. "We just went up there, focused in and knocked those shots down."
The Suns won despite shooting 39.5 percent.
The Suns struggled but led 53-49 at the half, thanks largely to going 14-of-14 at the foul line.
Phoenix missed its first seven 3-pointers before Barbosa made one from the corner to make it 53-47 33 seconds before the break. Stoudemire was called for goaltending on Petro's rebound shot to cut the Suns' lead to four at halftime.
The Suns still couldn't shake the Sonics in the third quarter, leading throughout the period but never by more than eight points. Seattle had a chance to tie in the final seconds of the quarter, but Earl Watson missed a layup, then Raja Bell made a 15-foot bank shot and Phoenix led 78-74 entering the fourth.
- Nash turned 34 on Thursday.
- Watson required stitches at halftime because of a cut above his left eye.
- The Suns have two weeks to sign a player to fill out their 13-man roster after the two-for-one trade with Miami.
- Phoenix is 13-2 in its last 15 against sub-.500 teams.