TORONTO -- It has taken a while but the Toronto Raptors finally figured out a way to beat the Phoenix Suns at Air Canada Centre.
More important, they ended a six-game losing streak with their 101-97 victory over the Suns before an announced crowd of 18,246 on Friday night.
Before Friday's game, the Raptors had lost seven in a row to the Suns at the ACC since they won on Jan. 4, 2004.
DeMar DeRozan led all scorers with 23 points and had eight rebounds while Amir Johnson scored eight of his 16 points in the fourth quarter. Kyle Lowry added 15 points and Jose Calderon had 13 points and nine assists for Toronto (4-13).
Shannon Brown, Marcin Gortat and Jared Dudley led Phoenix (7-10) with 14 points each. Goran Dragic added 13 and Michael Beasely 12.
Toronto led by four points entering the fourth quarter and after three minutes increased it to 87-78 as Johnson scored on a layup and hit the ensuing free throw.
Sebastian Telfair's layup got the Suns within four with 5:36 to play. And Jermaine cut the lead to two points with a dunk, but the Suns could not take advantage of a miss by Calderon when Brown's 3-point attempt failed with 3:13 left.
A foul by Brown put Johnson at the line and he made one of two free throws for a 96-93 Toronto lead. But Brown came back with a driving layup to cut the lead to one point.
But a bad pass by Dragic went to Lowry, who went down the court before dishing to Johnson for a dunk that gave Toronto a 98-95 lead with 1:44 to play.
After each team had a miss, Brown cut Toronto's lead to one again with a layup with 1:07 left.
After Lowry's turnover the Suns came back to miss two shots but still had the ball with 33 seconds to play. However, Luis Scola was foiled as he drove to the hoop and Lowry was fouled when he grabbed the rebound. Lowry hit one of his two free throws and Gortat gathered in the rebound with 14.4 seconds to play and Toronto led 99-97.
Brown missed a layup and Andrea Bargnani took the rebound and the foul and hit both shots for the final four-point margin.
The Suns took a one-point lead into the second half but Linas Klieza opened the third quarter with a 3-pointer for his first points of the game. Raptors got their lead up to three before the Suns took their turn in front to lead by four. But the Raptors had an 80-76 lead at the end of the third after an officials' video review determined that DeRozan's fadeaway jumper beat the buzzer. He also made the resulting free throw.
The Raptors, who trailed by as many as 10 points in the first quarter, tied the game 29-29 early in the second quarter on 3-pointers by Calderon and Terrence Ross.
Ross put the Raptors into a 38-36 lead on a steal and a dunk. Johnson put the Raptors up by four on a running dunk from a pass by Calderon with 6:03 left in the half.
A 3-pointer by Brown in the final minute of the half had the Suns up by six. But the Raptors struck back on a jump shot by DeRozan to give him 16 points in the half and a buzzer-beating 3-pointer by Lowry. The half ended with the Suns leading 52-51 led by Jared Dudley's 11 points after coming off the bench.
The Suns led early. A running layup by Dragic gave Phoenix a 19-9 lead in the first quarter. The Raptors cut the lead to 19-14 on Lowry's layup. But with 2:14 to play in the opening quarter, the Suns re-established their 10-point lead on layups by Michael Beasley and Brown. The Raptors scored the final four points of the quarter capped by DeRozan who went the length of the court for a dunk after a steal. Phoenix led 25-19 at the end of the first quarter.
NOTES: The Raptors announced Friday that swingman Mickael Pietrus was signed as a free agent and forward Dominic McGuire was waived after averaging 2.1 points and 3.4 rebounds over 15 games. ... The Suns were coming off a 117-77 loss at Detroit on Wednesday, the third-worst defeat in franchise history. ... Bargnani started for the Raptors after missing Wednesday's 103-82 loss in Memphis with a sore left ankle. ... The Raptors snapped a 14-game losing string against the Suns last season with a win in Phoenix. ... The Raptors' next game is Monday at Denver to start a five-game Western swing. ... The Suns play Sunday at New York against the Knicks.