Houston Rockets' James Harden (13) goes up to score the game-winning basket during the second half of an NBA basketball game against the Denver Nuggets Monday, March 20, 2017, in Houston. The Rockets won 125-124. (AP Photo/David J. Phillip)

Houston Rockets coach Mike D'Antoni, right, yells at the officials as Denver Nuggets' Mason Plumlee, left, walks toward the bench during the first half of an NBA basketball game Monday, March 20, 2017, in Houston. (AP Photo/David J. Phillip)

Denver Nuggets coach Michael Malone, left, gestures as referee Mark Lindsay (29) listens during the second half of an NBA basketball game against the Houston Rockets Monday, March 20, 2017, in Houston. The Rockets won 125-124. (AP Photo/David J. Phillip)

Denver Nuggets' Jamal Murray, center, tries to keep the ball from Houston Rockets' James Harden, left, during the second half of an NBA basketball game Monday, March 20, 2017, in Houston. The Rockets won 125-124. (AP Photo/David J. Phillip)

Denver Nuggets' Kenneth Faried (35) and Houston Rockets' Nene battle for a loose ball during the second half of an NBA basketball game Monday, March 20, 2017, in Houston. The Rockets won 125-124. (AP Photo/David J. Phillip)

Houston Rockets' Nene (42) shoots as Denver Nuggets' Nikola Jokic defends during the second half of an NBA basketball game Monday, March 20, 2017, in Houston. The Rockets won 125-124. (AP Photo/David J. Phillip)

Houston Rockets' James Harden (13) goes up to score the game-winning basket against the Denver Nuggets during the second half of an NBA basketball game Monday, March 20, 2017, in Houston. The Rockets won 125-124. (AP Photo/David J. Phillip)

HOUSTON (AP) — James Harden isn't necessarily known for his speed. That said, he felt extremely fast on his coast-to-coast drive in the fading seconds Monday night.

"I was running so fast," Harden said. "I felt like I was Usain Bolt."

Harden drove the length of the floor for a layup with 2.4 seconds left to lift the Houston Rockets over the Denver Nuggets 125-124.

Harden had 39 points, 11 assists and was three rebounds shy of his 20th triple-double of the season. Houston outlasted Denver in a duel between the second- and third-highest scoring teams in the NBA.

"The second half just became a shootout at the O.K. Corral — who's going to score more points?" Nuggets coach Mike Malone said. "I hate those kind of games because when you're playing against the third seed in the Western Conference on their home floor and you're turning the ball over, you're going to have a hard time keeping pace with them. But we did that and gave ourselves a chance."

Harden likely saved the game for Houston, too, when he batted down an inbounds pass to Mason Plumlee near the basket following his layup.

"We were trying to get the lob, and I thought it was a good play call," Plumlee said. "We just didn't convert it."

Will Barton gave Denver a one-point lead on a three-point play with less than a minute left. On the following possession, Harden missed a layup, but he got it back on the other end of the floor when he rebounded Jameer Nelson's air-ball.

Harden took the ball down the court and scored on a finger-roll layup.

In a physical matchup between two teams that lean heavily on their ability to get to the free-throw line, neither the Rockets nor Nuggets appeared happy with the officiating in the game.

Gary Harris scored a career-high 28 points for Denver by shooting 10 for 16 from the floor and making three 3s. Nikola Jokic also gave Houston problems with his size on both ends of the floor. Jokic had 22 points, 13 rebounds and eight assists.

Denver led 65-62 at the half as it outrebounded the Rockets 30-13 in the first half and Houston made just 7 of 20 3-pointers. Houston's long-range shots finally began to fall late in the third quarter, and a 3-pointer from Patrick Beverley early in the fourth gave Houston a six-point lead that energized the Toyota Center crowd.

The Rockets finished the game 17 for 38 from 3 (44.7 percent).

Eric Gordon scored 18 points off the bench for Houston, and Beverley, Trevor Ariza, Ryan Anderson and Clint Capela all also scored in double figures for the Rockets.

The Nuggets are fighting for a playoff spot in the West and entered holding the eighth seed, but they're also battling injuries. Danilo Gallinari (knee) and Wilson Chandler (groin) both participated in shootaround but did not play. Nuggets coach Mike Malone is hopeful they can be ready to play when the team faces the Cavaliers in Denver on Wednesday night.

Forward Darrell Arthur (left knee soreness) did not travel with the team to Houston, and Malone did not have a timetable for his return.

Rockets: Houston scored 27 points off Denver's 21 turnovers while only turning the ball over 12 times and allowing 14 points on the other end. ... Gordon tied a career high with his 35th block of the season, set during his rookie year in 2008-09.