OAKLAND, Calif. -- In one corner of the Golden State Warriors' locker room, Stephen Curry iced a welt on the left side of his forehead. On the other, Jermaine O'Neal limped out of the training room with bandages around his waist and wrist.
The Warriors emerged from 53 minutes of basketball battered and bruised by the NBA's hottest team but delivered their own kind of knockout blows.
Curry converted a tying layup with 3.2 seconds left in regulation and finished with 25 points, O'Neal made a big-time block in overtime and the Warriors outlasted the Rockets 102-99 on Thursday night to halt Houston's eight-game winning streak.
"That's one of our biggest wins of the year," said O'Neal, who grabbed 10 rebounds and defended Dwight Howard as well as anybody has this season.
Just after James Harden hit a go-ahead jumper, Curry came back with a left-handed layup over Howard to send the game to the extra session. The Warriors got a big boost in overtime when O'Neal, who had surgery on his right wrist earlier this season and was filling in for injured center Andrew Bogut, blocked Chandler Parsons' baseline dunk attempt at the rim.
Curry followed with two free throws to give Golden State a 98-95 lead with 15.9 seconds left. The teams traded free throws as the Rockets ran out of time.
"There were so many big plays that we made both offensively and defensively," Warriors coach Mark Jackson said. "We were patient, we executed and it was just a big-time win for us."
Harden scored 34 of his 39 points in the second half to rally the Rockets, but said he hyperextended his right elbow in a collision during the closing minutes. Harden had an X-ray but the results had not come back. He's scheduled to have an MRI in Phoenix, where Houston plays its next game Sunday.
"When it first happened, I thought it was over. I thought I broke it or whatever," said Harden, who stayed in the game. "It's still painful. It's throbbing but hopefully it's nothing too serious."
The Warriors outshot Houston 39.8 percent to 36.6 percent and made just enough plays late.
Howard grabbed 21 rebounds, but scored just 11 points on 4-of-13 shooting, and Parsons added 21 points and eight rebounds as Houston lost for the first time since Jan. 25 at Memphis. It was the Rockets' longest winning streak since a franchise-record, 22-game run in 2007-08 season.
"It just wasn't a crisp game for us," Rockets coach Kevin McHale said.
Playing on back-to-back nights made for two tired teams until both picked up the intensity late in the fourth quarter.
Harden stripped Lee as he turned to shoot out of the post, then hit a go-ahead shot from 23 feet over Thompson that put Houston ahead 89-87 with 6.9 seconds to play in regulation.
After the Warriors called timeout to advance the ball to half court, Curry received a pass from Andre Iguodala while running off a screen and drove to his left and to the hoop. With Howard approaching, Curry floated a left-handed layup over the Rockets center for the tying score before Harden missed a 3-pointer at the regulation buzzer.
Curry said the play was designed for him to shoot a 3-pointer but defenders overplayed him.
"At that point, it was just about getting into the lane as quick as possible and try to get it on the rim," said Curry, who was inadvertently bruised by Howard's leg as the two dove for a loose ball earlier. "Dwight was there to protect and thankfully I was able to get a little bit of touch on it and it went in."
The Warriors took control for good when Parsons sprinted down the baseline, received a pass from Harden and went up for a one-handed dunk only to be emphatically denied by the veteran O'Neal, bringing the announced sellout crowd of 19,596 roaring to their feet.
"He made a great play going baseline, and when you're big, you kind of look at it like being a free safety," O'Neal said. "I wanted to make sure I got to the rim in time to save the dunk."
"It was just perfect timing on his part," Parsons said.
The Rockets were forced to foul Curry with time running out. He made both free throws, then the Warriors intentionally fouled Harden so he couldn't attempt a tying 3-pointer.
Harden and Curry swapped free throws before the Warriors stole the ball to finish off a thrilling game between teams that could see each other in the Western Conference playoffs.
Steve Blake, acquired by the Warriors in a trade with the Lakers on Wednesday, finished with three points, two rebounds and one assist in 19 minutes. ... Houston won the season series with Golden State 2-1. ... McHale was whistled for a technical foul for arguing a charging call against Jeremy Lin at the end of the first quarter. The foul on Lin was waved off after officials ruled time had expired following a video review. The technical stood.