The Nets had lost their previous 10 trips to the Palace of Auburn Hills, but overcame a five-point deficit in the final 4 minutes.
After Johnson hit his two foul shots, Will Bynum missed a 3-point attempt for Detroit that could have brought about an overtime period.
Greg Monroe hit 10-of-16 shots and scored 23 to go with 10 rebounds for the Pistons. Detroit led by as many as 13 in the second quarter.
Millions of Getty images now available for free via embed tool
NBC reportedly holds celebs hostage to Jimmy Fallon's show