"There's no doubt he is playing the best basketball of his career," said Pistons coach Dwane Casey, who coached DeRozan for eight years in Toronto. "He doesn't have the analytics on his side, because he uses the mid-range jumper, but he gets to the line. We gifted him 13 free throws tonight, and he beat us."
Zach LeVine added 25 points for the Bulls, and Nikola Vucevic had 21 points. They won despite only hitting three 3-pointers.
"We have to stop putting ourselves in holes like we did again tonight," DeRozan said. "We can't wait for the fourth quarter to get aggressive."
Cade Cunningham had 22 points for the Pistons, but no one else scored more than 12.
"I love watching the way he's developing," DeRozan said about Cunningham. "You don't see a lot of young guys with his patience, and he's got size and skill and the confidence to make plays. He's got a great coach, too."
Detroit had won three straight.
"He's obviously a great player and he showed that down the stretch tonight," Pistons center Kelly Olynyk said. "What makes him so tough is, in today's NBA, you are usually trying to get guys to shoot mid-range jumpers, but that's how he kills you."
The Pistons led 99-92 with 8:59 left before DeRozan and Zach LeVine took over.
DeRozan's layup gave the Bulls a 101-99 lead with 5:44 left and, after a Detroit miss, LeVine made two free throws to finish an 11-0 run. Two more baskets from DeRozan made it 109-101, and the Pistons couldn't hit enough shots down the stretch.
"I don't know what changed down the stretch, but that was definitely the difference in the game," Bulls coach Billy Donovan said. "We played with a level of desperation in the fourth quarter that was good to see on both ends of the floor. Our defense was a huge, huge factor in the fourth."
Neither team led by more than eight points in the first three quarters, but Hamadou Diallo's put-back dunk gave the Pistons a 91-84 advantage going into the fourth.
"They were just going by us for three quarters," DeRozan said, "In the fourth quarter, we started playing defense again and getting into transition. That's how we have to play to win games."
Bulls: Vucevic missed Chicago's loss to the 76ers on Thursday night with a hamstring strain. He played 29:11 despite being limited to six-minute stretches by the team's medical staff.
"Obviously, I'm used to playing longer than that, but I had to do whatever I could to make it work," he said. "I felt pretty good and the guys got me a lot of open looks."
Pistons: C Isaiah Stewart (knee), G Frank Jackson (back) and G Killian Hayes (adductor) missed the game.
LOPSIDED FREE THROWS
The Bulls were 31-35 from the free-throw line, including 11-13 in the fourth quarter. The Pistons finished 13-17 and made one of two attempts in the fourth.
"I'm going to have to go back and look at the film to see how we ended up in that position," Casey said.
Bulls: Host Cleveland on Saturday night.
Pistons: At Boston on Friday night.