Sessions had 18 points and eight assists off the bench for the Bobcats and Byron Mullens added 15 points.
The Bobcats cut the Pistons' 11-point lead to one late in the fourth quarter before Monroe scored on a spin move inside. Calderon put away the game with a pair of free throws with 21 seconds left after Mullens missed a jumper and Walker turned the ball over at the top of the key.
The Pistons were coming off a 14-point loss to the Memphis Grizzlies on Tuesday night, a defeat that coach Lawrence Frank called "a real stinker."
He felt better about this one, calling it a "gritty win."
"It was a good result," Frank said. "We got off to a good start, which always helps. We executed well down the stretch. Showing our execution down the stretch. Our patience, our poise and playing through a little bit of adversity."
The Bobcats entered the fourth quarter down 78-77 but the Pistons quickly built a double-digit lead after Kyle Singler scored off an offensive rebound with seven minutes left in the game.
The Bobcats clawed back behind a pair of 3-pointers from Mullens and two nasty dunks by rookie Michael Kidd-Gilchrist but couldn't seize the lead.
Charlotte dropped to 7-20 at home and 13-41 overall.
"Our biggest problem was defensively, we weren't able to get stops," Walker said. "We missed a lot of rotations and weren't talking to each other. We weren't in sync tonight. We've got to get that back."
Detroit hasn't looked sharp on the road, carrying a 6-18 record into the game. But the Pistons looked good early, jumping out to an 11-point first-quarter lead behind 11 points from Knight and three 3-pointers from Calderon.
Rodney Stuckey added 12 points and tied a season-high with seven rebounds off the bench for the Pistons.
NOTES: Carolina Panthers wide receiver Steve Smith took in Wednesday night's game. ... Tyrus Thomas, one of Charlotte's highest-paid players, was inactive for the fourth straight game. ... Walker has now topped 20 points in a game 18 times this season. ... Monroe tied a career high with three blocks.