Baron Davis hit a game-sealing three-pointer in the closing moments to cap a 16-point effort off the bench for the Cavs, who halted a four-game slide.
Richard Hamilton and Tayshaun Prince each scored 15 points to pace the Pistons, who dropped their third straight.
Cleveland took a 75-68 lead into the fourth and never trailed in the final frame.
The Pistons were within one, 92-91, with 1:39 to play following Chris Wilcox's putback of Will Bynum's missed free throw.
Daniel Gibson, though, answered with a jumper, and Bynum missed consecutive shots on Detroit's next two possessions. Davis, playing in his fifth game with the Cavs since getting traded from the Clippers, punctuated the win with a clutch three with under 10 seconds on the clock.
The Cavs held a 26-24 lead after 12 minutes, never trailed in the second quarter and clung to a 52-51 edge at the break.
Two Wilcox free throws gave the Pistons the lead in the opening minute of the third, but that was the last time the visitors were in front.
Detroit has dropped eight straight on the road...Wilcox and Austin Daye each scored 12 points for Detroit, which was outrebounded, 51-39...Luke Harangody donated 10 points and nine rebounds off Cleveland's bench.