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.