Jeremy Lin finished with 14 points and 10 assists to help the Rockets past his former team for the second time in eight days.
A week after Houston tied the NBA record with 23 made 3-pointers in a testy 140-109 rout of the Warriors, the Bay Area rematch took a little longer to decide.
Stephen Curry had 27 points and six assists and Jarrett Jack scored 22 points after missing the past three games with a right shoulder injury for the Warriors, who head into the All-Star break on a season-long five-game losing streak.
The Rockets seemed more riled up for the Warriors' return to Oracle Arena than the home team.
Houston made 23 of 40 shots from beyond the arc against Golden State last week. Some Warriors players were upset about what they perceived as excessive celebration from the Rockets, and Warriors coach Mark Jackson ordered his players to foul in the final minutes just so Rockets wouldn't surpass the record.
The game also marked the first appearance in the Bay Area for Lin, who grew up nearby Palo Alto, since "Linsanity" swept through the NBA a year ago. The Warriors waived Lin before last season after he played sparingly as a rookie, Houston signed him for a couple of weeks before cutting him and then the Knicks decided to give him a look.
Lin became a sensation in New York. His burst of brilliance on Broadway earned him a three-year, $25 million deal with Houston that the Knicks declined to match.
Lin's backcourt teammate was the one who gave Golden State fits.
Harden, wearing a protective sleeve around his nagging knee, landed hard after missing a fast-break layup over 7-footer Andrew Bogut in the first quarter while the Warriors built a nine-point lead. Harden held his knee and limped to the bench during a timeout but stayed in the game.
The Harden-Lin duo dodged defenders and drew fouls with relative ease. The pair combined to go 15 for 15 on free throws and score 26 points in the first half to pace the Rockets to a 57-56 lead.
Golden State had allowed at least 60 points in the first half of each of the past four games.
Harden had another scary fall going for a fast-break layup in the third quarter. His right plant foot stepped on David Lee's left shoe, twisting awkwardly as he tumbled to the ground.
Harden limped trying to shake off the pain before he made both free throws. He walked gingerly to the locker room and returned a few minutes later, highlighting a 13-5 spurt with a driving dunk that helped Houston take an 88-77 lead.
After the Warriors whittled the deficit to six early in the fourth quarter, the Rockets quickly broke the game wide open.
Carlos Delfino hit a 3-pointer and Marcus Morris had two dunks and added a basket from beyond the arc to give Houston a 107-95 with 6:08 remaining.
NOTES: The Warriors had won their last game before the All-Star break the past nine seasons. ... The Warriors have sold out 14 straight games, the longest since a renovation prior to the 1997-98 season that increased capacity from 15,025 to 19,956. ... Houston plays its last game before the All-Star break at the Los Angeles Clippers on Wednesday night. ... The Warriors hosted Asian Heritage Night. A portion of event-night ticket sales benefited the AsianWeek Foundation's efforts to increase awareness for Hepatitis B.