James scored 24 points with 11 assists and eight rebounds as the Heat won for the fifth time in six games.
Brandon Jennings led the Pistons with 26 points. Rodney Stuckey added 20 and Greg Monroe and Andre Drummond both recorded double-doubles — Monroe with 17 points and 11 rebounds and Drummond with 12 points and 12 rebounds.
The Pistons had won two straight going into the contest, and they are one of just four teams to beat the Heat in Miami this season.
They kept it close for much of the night, but surrendered seven of their 21 turnovers in the fourth quarter as the Heat pulled away.
Ray Allen opened the fourth period with a three-pointer that launched a 14-5 Heat scoring run.
A three-pointer and a driving hook shot by Wade stretched Miami’s lead to 100-85 with 3:41 remaining, and an 11-2 scoring run to finish the game by Detroit wasn’t enough.