Sonny Weems added 16 points for Toronto, and Andrea Bargnani had 15 and DeMar DeRozan 14.
Steve Nash led Phoenix with 16 points, adding a team-high seven rebounds and six assists, but the Suns lost for the fifth time in six preseason games.
Hakim Warrick scored 14, Jason Richardson and Josh Childress each had 12, and Grant Hill added 10 for Phoenix, which has dropped three straight since beating Dallas on Oct. 9.
The Suns have allowed 100 points or more in all five of their preseason defeats.
Bargnani had struggled with his shooting in Toronto's first five games, going 16 for 64, but was better Sunday, making five of his first six and finishing 7 for 12.
Raptors forward Reggie Evans had 12 rebounds and Johnson had 11 as the Raptors outrebounded the Suns 57-38.
Toronto trailed by 11 points after one quarter, but closed the gap in the second, outscoring Phoenix 31-22 and getting within 55-53 at the half.
The Raptors kept it up in the third, shooting 15 for 29. DeRozan scored eight points and Jack had seven as Toronto took a 92-79 lead into the fourth.
Hedo Turkoglu, traded from Toronto to Phoenix this summer after one disappointing season with the Raptors, was booed during pregame introductions and every time he touched the ball. Turkoglu, who scored five points in 19 minutes, jokingly booed fans sitting courtside as he checked in at the scorer's table in the second quarter.
Raptors C David Andersen (sore back) did not play. ... Toronto beat Phoenix 129-78 in its preseason opener, Oct. 6 in Vancouver, British Columbia.