The Suns had to hold on in the final minutes after dominating most of the night. They jumped to a 32-18 lead by the end of the first quarter and led by 29 points at one point during the third quarter.
Memphis pulled within 107-101 with 2:21 remaining, but Cam Johnson responded with a made jumper while being fouled. He completed the three-point play with a free throw to help the Suns briefly regain control.
The Grizzlies had one more run remaining. Desmond Bane's free throws cut the margin to 110-106 with 58.8 seconds left. After a Phoenix turnover, Ja Morant was fouled and made two more free throws to cut it to 110-108 with 28.6 seconds remaining.
Phoenix forward Dario Saric hit two free throws after being fouled on the ensuing possession and the Grizzlies finally ran out of time.
The Suns have won three straight, pushing back to .500 for the season. The Grizzlies have dropped two in a row after their 11-game winning streak was snapped by the Lakers on Friday.
The Suns were closer to full strength than they've been in a few weeks, though All-Star guard Devin Booker is still out with a groin injury. Paul was back in the lineup and Johnson played his second game since missing more than two months with a knee injury.
Paul was stellar in the first half, scoring 17 points to lead the Suns to a 62-37 halftime lead. The Grizzlies shot just 15 of 50 (30%) before the break.
Grizzlies: Williams' 79-foot basket was the longest basket in franchise history.
Grizzlies: Travel to face the Kings on Monday night.
Suns: Host the Hornets on Tuesday night.
AP NBA: https://apnews.com/NBA and https://twitter.com/AP_Sports
David Brandt, The Associated Press