At 19 years and 225 days old, Edwards became the third-youngest player in NBA history with a 40-point game.
"Our future success starts now," Timberwolves coach Chris Finch said.
The Timberwolves still have the worst record in the NBA at 10-31 but have played much better over the past couple of weeks. Edwards and Towns carried Minnesota in this one, pouring in points from all over the floor.
After the game, Edwards gave away his jersey to his "blood brother" who was at the game and gave his shoes to some other fans. The 19-year-old was grinning from ear to ear as he walked off the court.
"We're winning," he said. "It's always happy when we're winning."
Edwards, who was the No. 1 overall pick out of Georgia last summer, made 15 of 31 shots. Towns was even more efficient, making 15 of 24 shots, including 5 of 7 3-pointers. Juancho Hernangomez dunked with 2.5 seconds left to seal it.
It was just the second time in Minnesota's franchise history that two players scored 40 points in the same game.
"Unbelievably special," Finch said. "They played pretty efficient. KAT almost has a triple-double. They were carrying us."
Jevon Carter hit a 3-pointer just before the third-quarter buzzer to give the Suns a 91-83 lead. But the Timberwolves kept the game tight, and Towns tied it at 107 after a 3-pointer with less than five minutes remaining. Towns also added 10 rebounds and eight assists.
These were the kinds of performances the Timberwolves envisioned when they selected Edwards, who has a sweet jumper and produced a few highlight-reel dunks on Thursday. The 6-foot-4 guard is averaging 30.6 points over his past five games.
The Associated Press contributed to this report.