Patterson ended with 20 points and Kevin Martin contributed 16 for the Rockets, who won for only the second time in five games.
Patterson scored seven straight points during a 9-0 Houston run that began with less than 5 minutes to play, putting the Rockets in front to stay. Aaron Brooks completed the streak with two free throws to make it a 102-94 game with 2 minutes left.
The Pistons, meanwhile, concluded a tough home stand with a 1-4 mark.
Will Bynum led Detroit with 21 points and six assists off the bench and Rodney Stuckey netted 19 points in the loss.
McPhee, Cokas 'working on their marriage' after affair
Astronomers offer more expansive view of universe