ORLANDO, Fla. -

DeMar DeRozan swished a fadeaway jumper at the buzzer as the Toronto Raptors fought off a late-game charge by the Orlando Magic to earn a 97-95 victory on Thursday night.

It was a wild offensive night on both ends, featuring 12 lead changes and 12 players reaching double figures.

DeRozan led Toronto with 22 points, followed by Amir Johnson with 21 points and 10 rebounds. It was Johnson's sixth double-double of the season.

The victory gave the Raptors a four-game season sweep of Magic, who dropped their fourth game in a row.

Nikola Vucevic led Orlando with 19 points and 14 rebounds. Arron Afflalo added 16 points and Glen Davis had 15.

The Magic have lost 15 of their last 17 overall. They host Detroit on Sunday.

After three of their previous four games went to overtime, the Raptors found themselves in another close game late.

Offense went through the center position for most of the night, with Vucevic and Johnson as the go-to options on both sides. Then, the guards took over.

The Raptors carved out a 75-66 lead entering the final period, taking advantage of 12 Magic turnovers in the first three quarters.

Davis skied for a rebound and found a cutting Jameer Nelson for a layup to cap a 14-4 run and give the Magic their first lead of the second half, 84-83, with 5:19 to play in the game.

Defense tightened on both ends, with the lead changing hands several times down the stretch.

The Raptors forced a five-second turnover, followed by a jumper by DeRozan and layup by Alan Anderson to stretch out to a 91-86 advantage.

The Magic then got a little lucky when J.J. Redick was fouled on a 3-point make and completed a four-point play to tie it at 93-all with just 53 seconds remaining.

DeRozan hit a step back jumper on the other end to put Toronto back in front, but that was quickly answered by a short jumper off a rebound by E'Twuan Moore to tie it back up.

The Raptors ran the clock down to under 10 seconds before Davis reached in and fouled Johnson, leaving Toronto with just 4.3 seconds and setting up DeRozan's game-winner.

In what was a pretty even first half that featured 10 lead changes, the Raptors took a one-point lead into the locker room. Vucevic and Johnson carried their teams with 14 points apiece in the half.

Vucevic lived around the rim, getting several baskets off put backs and tip-ins. Johnson scored from all over after being ignited by an early dunk.

Notes: The Raptors improved to 5-18 on the road this season. ...Davis received his fourth technical of the season late in the first quarter. ...The Magic fell to 1-15 when forcing 10 or fewer turnovers this season.