Luol Deng had 19 points, Tristan Thompson scored 15 with 13 rebounds and Jarrett Jack totaled 13 points, five boards and five assists to help Cleveland win its second straight game on the heels of four straight losses. Waiters and Deng had seven assists apiece.
Kyle Lowry finished with 22 points and 10 helpers for Toronto, losers in four of six. Terrence Ross and Greivis Vasquez scored 16 points apiece.
Toronto trailed by as many as 21 points early in the third quarter but chipped away at its deficit, pulling within single digits on a DeMar DeRozan layup late in the period.
Vasquez caught fire in the final two minutes of the third, hitting four free throws and a deep triple, but Deng countered with a 3 to beat the buzzer and keep the Cavs in front, 88-81.
The Raptors kept momentum heading into the fourth, however, eventually claiming their first lead since the opening minutes on another Vasquez 3-ball at 6:45. Jack's stepback jumper restored the lead for Cleveland, and the hosts held off the pesky Raptors the rest of the way.
It was 102-99 in the final seconds when DeRozan drove and drew a foul on Alonzo Gee. DeRozan split the pair with 7.8 seconds to play, cutting the margin to two, and after spending a timeout, Anderson Varejao overthrew Deng on the inbounds at the other end, giving the ball back to Toronto.
On the final possession, Vasquez drove left on Jack but lost his footing, forcing a pass that Deng easily intercepted to run out the remaining time.
The Cavs took control in this one from the jump, trailing just twice in the early portion of the contest before Jack's layup at 8:51 gave them a lead that lasted nearly 39 minutes.
It was 26-17 after one and 59-45 at halftime.