Eric Gordon led seven Houston players in double figures with 20 points and the Rockets held off the host Detroit Pistons 103-102 on Friday.
P.J. Tucker had 15 points and seven rebounds and Jae'Sean Tate, David Nwaba and Victor Oladipo supplied 13 points apiece for Houston, which snapped a three-game losing streak.
Jerami Grant led the Pistons with 21 points and eight rebounds. Grant has scored 20 or more points in 14 consecutive games. Delon Wright and Wayne Ellington contributed 18 points apiece and Josh Jackson added 12.
Houston center Christian Wood, who played for Detroit last season, did not make the trip due to a sprained ankle.
The Rockets took advantage of careless plays by the Pistons to lead by as much as 20 in the first half.
With Wright scoring 11 first-half points, the Pistons rallied to pull within eight by halftime, 55-47.
Wright also opened the second half with a 3-pointer. The Rockets pushed their lead up 10, 68-58, before Detroit used a 14-3 run to take the lead.
Grant, who didn't have a field goal prior to that stretch, knocked down a pair of 3s.
An Ellington 3-pointer in the final minute of the quarter gave the Pistons an 81-75 advantage.
Houston regained the lead at 85-83 on a Nwaba three-point play. Sterling Brown hit a pair of long balls midway through the fourth to extend the Rockets' lead to eight, 95-87. Detroit scored the next six points before Gordon made a pair of free throws.
Grant's 3-pointer with 1:49 left pulled Detroit within two points. Mason Plumlee had a chance to tie it but missed two free throws. Gordon then made a driving layup for a 102-98 Rockets lead with 1:08 remaining.
Blake Griffin's 3-pointer cut Houston's advantage to one, 103-102.
Oladipo missed a 3-point attempt and Griffin rebounded, setting up Detroit's final possession after a timeout with 3.4 seconds left.
Grant took the inbounds pass and drove to the basket. A foul was called against Tucker but after video review, it was determined that the infraction came when the clock had expired.