The Raptors won their third in a row and wrapped up a second straight season sweep of Portland. They previously had beaten the Trail Blazers 95-91 in Portland on Dec. 26.
Damian Lillard scored 28 points for the Trail Blazers, who got 18 from Maurice Harkless.
Up 98-96 with 4:41 remaining, the Raptors scored the next six points, with back-to-back jump shots from Ibaka and a pair of free throws from DeRozan putting them up by eight with 3:16 remaining.
The Trail Blazers answered with six straight converted free throws sandwiched around a three-point play from Cory Joseph, before Lillard drove on Ibaka and converted the layup to cut the lead to 107-104 with 1:42 to play.
But DeRozan scored the next four points, hitting a jump shot and two free throws to put the Raptors up by seven with 30 seconds to play.
In a back-and-forth first quarter featuring 11 lead changes, Portland took control, overcoming 12 points from DeRozan to emerge with a 28-25 edge after 12 minutes.
Al-Farouq Aminu led the way for the Trail Blazers in the second with nine points as they extended their advantage to 12 points with 4:52 to play in the half. But the Raptors shot 61 percent in the period and went on a 15-2 run to close out the quarter and head into halftime lead 53-52.
Toronto scored the first six points of the third quarter to extend its lead, but Lillard had 10 points in the period to the Trail Blazers stay close. They retook the lead with 1:47 to play, before the Raptors surged back to enter the fourth up 82-80.
Raptors: G Kyle Lowry (right wrist) missed the game. Joseph made just his third start of the season in his place. . Toronto has now completed season sweeps against five teams this season (Brooklyn, Denver, Utah and the Los Angeles Lakers).
LACK OF LOWRY
Toronto coach Dwane Casey said Lowry’s sore right wrist was assessed over the weekend and it was still structurally sound.
“The images weren’t significant, there was no significant showing,” he said. “So it’s going to be day-to-day, treated symptomatically. Swelling’s gone down, so that’s a good sign. So we’ll see. He’ll be a day-to-day thing. It wasn’t broken, so that helps.”
Trail Blazers: Visit Detroit on Tuesday looking to snap a three-game losing streak against the Pistons.
Raptors: Visit New York on Monday aiming for a sixth straight win over the Knicks.