"Any time you go through a stretch like that, you're just fighting for a win," Harris said. "It could change a lot, so hopefully we take this one and move forward and continue to build some consistency."
James missed his third game of the season, and Cleveland has lost all three. The Cavaliers had their five-game winning streak snapped on a night they never led.
Cleveland was playing its fifth game in seven days and coming off a thrilling win Sunday over Golden State. So James sat, and the Pistons took advantage.
"They haven't played since Friday and they've been sitting here waiting for us. Give them credit, because that's what they are supposed to do," Cleveland's Kyrie Irving said. "They knew we were flying in here after the Golden State game, and they were resting up and waiting for us. They jumped on us early, but it might have been different if they were coming off a back-to-back and we had two days of rest."
The Cavs were also playing their fourth game without starting guard J.R. Smith, who is expected to miss three months because of a broken right thumb.
Detroit scored the first eight points, led 50-44 at halftime and took control near the end of the third quarter. Harris and Kentavious Caldwell-Pope made 3-pointers early in the fourth, and the Pistons led 82-65.
Kevin Love had 17 points and 14 rebounds for Cleveland.
There was some booing when James was announced as a scratch before the game. Although the crowd was certainly happy to see the Pistons play well, the atmosphere wasn't quite as raucous as it surely would have been had Detroit routed the Cavs with Cleveland's top player in the lineup.
"LeBron is obviously a great player who opens up the floor for his teammates, so other guys have to step up," Cavs coach Tyronn Lue said. "I thought we tried to do that tonight, but it didn't happen."
The Pistons went 16 of 28 from 3-point range, and Andre Drummond had 11 points and 17 rebounds.
Detroit coach Stan Van Gundy changed his starting lineup Friday in an attempt to shake the Pistons out of their funk, starting Jon Leuer in place of Harris. Detroit played decently in that game but lost to Golden State before ending the skid Monday.
"It's two games," Van Gundy said. "I'm not going to go crazy, like, deciding that that's the great move. We didn't win both games. We're 1-1. We'll see how it goes, but I've been happy with the two games."
Cavaliers: Tristan Thompson became the first player in franchise history to play in 400 consecutive regular-season games. ... Irving had 18 points and eight assists.
Pistons: Detroit fell one 3-pointer short of the franchise record of 17. ... The Pistons scored 29 points off 22 Cleveland turnovers. Detroit turned the ball over only 12 times.
Cleveland G Kay Felder, a rookie who played collegiately just a few minutes away at Oakland University, scored 11 points in his return to Michigan.
"I thought we played hard. We just gave some young guys a chance to play and looked at a few different things," Lue said. "The biggest factor in the game was them hitting 16 out of 28 3s. That's just great shooting."
Cavaliers: Cleveland returns home to host Boston on Thursday night.
Pistons: Detroit faces another Central Division opponent Wednesday night when Milwaukee comes to town.
Follow Noah Trister at www.Twitter.com/noahtrister
Adrian Wojnarowski breaks down Michael Jordan's interest in bringing in former Lakers general manager Mitch Kupchak for a high-ranking role with Charlotte.
Max Kellerman doesn't want to see NBA commissioner Adam Silver overhaul the postseason format, but Jalen Rose sees opportunity for fresh storylines in the league.
Max Kellerman and Jalen Rose debate the likelihood of Paul George signing a max contract in Oklahoma City instead of his native Los Angeles.