"I knew the shot clock was running down and when ran out to me he got chest-to-chest and I just ripped it through," Foye said. "He's so long I had to fade away and I shot the ball. I just shot it high, followed through and it went all the way through the net."
Al Jefferson had 22 points and 12 rebounds to lead Minnesota, who bounced back from a loss on Tuesday to win for the sixth time in seven games.
"The guys have been battling and we've won a couple down the stretch," said Timberwolves coach Kevin McHale. "When you win a couple of them you know that you can."
Sebastian Telfair gave the Suns an opening when he missed a long 3-point try with 6.9 seconds left, but Richardson missed a 3-pointer from the right corner at the buzzer and Phoenix lost its second straight.
"It was definitely the look I wanted," Richardson said. "It looked good coming off my hands and it just came up short. I definitely want to be one of those guys to take the shot."
Phoenix had called time out with 1.7 seconds left to set up the final play.
"It was crowded out there," said Suns guard Steve Nash. "Coach had said look and see if you've got something, if not call timeout. So we did that and it didn't really work to our advantage this time but it might have. In hindsight it's easy to second guess."
"They came in and outworked us on the boards," said Suns coach Terry Porter. "They had their way in stretches of getting by our guys and they just never quit."
Minnesota came back from 11 points down midway through the third to take an 84-83 lead on Telfair's driving layup with 8:25 remaining.
Phoenix took its final lead, 101-100, on Stoudemire's two free throws with 2:22 remaining to set up Foye's go-ahead basket from the left elbow.
The Timberwolves, who had lost five straight in Phoenix, led most of the first half. Carney scored on a dunk and added a 3-pointer to spark an 8-0 run that gave the Timberwolves a 35-27 lead with 8:32 left in the first half.
But the Suns worked their way back, tying the game at 39-all on Matt Barnes' 3-pointer from the left wing with 6:21 to go. Phoenix took its first lead at 45-43 on a 6-foot jumper by Barnes with 4:36 left in the half.
The Timberwolves closed a four-point halftime deficit to 59-58 on Smith's layup with 8:17 left in the third period. But Phoenix then pulled away behind Stoudemire and Grant Hill, who outscored Minnesota 14-2 over the next 4:12 to give the Suns their largest lead of the game, 73-62, with 3:36 to go in the third.
Carney hit a pair of 3-pointers as the Timberwolves closed the quarter on an 11-6 run to pull to 79-73.
The Timberwolves won their first game in five chances against Pacific Division teams. ... Barnes was called for a technical with 3:41 remaining when he caught Love with a forearm across the face after being whistled for fouling Love. "He gave me some love right to the chin," Love said. "I guess there's no hard feelings, but that was a cheap shot." ... Phoenix has scored 100 or more in a season-high nine straight games. ... Carney has scored in double digits in six of his last 11 games. ... O'Neal has 15 or more points in his last 13 games, his longest such streak in almost four years. ... Porter said the club had sent tape of the non-call at the end of Thursday's loss to Denver to the NBA's New York offices, but even a possible admission of error means little. "That doesn't help the coach when he gets that yellow slip on the way out the door," Porter said before Friday's game.