Toronto has won five games in a row after recording just four victories in its first 23 games.
The Raptors led by 11 with less than 6 minutes to play, but Orlando rallied to within one when Jameer Nelson made a 3-pointer with 57 seconds left.
Johnson's foul shots accounted for the final score and the Magic's J.J. Redick missed a 3-pointer that would have tied it with 10 seconds to play. Orlando had a four-game winning streak snapped.
DeMar DeRozan paced Toronto with 17 points and eight rebounds. Jose Calderon contributed 13 points and nine assists.
The five-game winning streak is Toronto's longest in almost 3 years.
Orlando was paced by 26 points from Arron Afflalo and 16 from Nikola Vucevic.
Pistorius testifies he didn't consciously pull trigger when he shot girlfriend
'Happy' fan videos make Pharrell cry [VIDEO]