PHOENIX -- Grant Hill was struggling all game, unable to find his shot.
Until it mattered most.
Hill hit a 12-foot jumper in the lane to break a tie with 58.6 seconds remaining, then added a free throw with 6.2 seconds left to help Phoenix extend its season-high winning streak to five games in a 118-115 victory over Denver on Monday night.
"That may have been the only jumper I hit," said Hill, who had a double-double with 23 points and 10 rebounds, but also committed six turnovers.
"I felt like I didn't play well," Hill added. "A lot of turnovers. Missed a lot of layups. I was just trying to be active. It was a play we used to run last year. I was wide open. I just turned around and shot it."
Denver's Chauncey Billups, fouled by Hill with 5.4 seconds remaining to prevent the Nuggets' from attempting a tying 3-pointer, made two free throws to cut the Suns' lead to 116-115.
The Nuggets fouled Steve Nash on the inbound play, and he made both foul shots with 3.9 seconds left.
Carmelo Anthony, who led the Nuggets with 29 points, missed a 3-pointer from the left wing in the final second. Billups had 20 points.
It's a tough one to lose, but we don't want to put too much pressure on ourselves," Anthony said. "We thought we should have had this one."
Shaquille O'Neal, who played only 24 minutes because of foul trouble, had six of his 19 points in the final 5:04, when he made four of five free throws.
"That's what I do, baby. I'm Shaq-ovich," said O'Neal, who made seven of eight free throws in the game. "We needed them. I'm known that when you really need them, I'm going to make them."
O'Neal also blocked Kenyon Martin's 8-footer from the lane with 1:10 remaining. Martin came down with the ball and was called for an offensive foul when he collided with Jared Dudley, who had 12 points and eight rebounds.
With Dudley leading the way, the Suns' reserves had 36 points and 15 rebounds. The Suns (39-31) closed to within three games of idle Dallas for the final Western Conference playoff berth. They have gained three games on the Mavericks in 11 days and have one more game against Dallas on April 5.
"We can always play like that when we are focused and playing the right way," said O'Neal, whose Suns play Utah twice and Portland in the next three games over four days, beginning Wednesday.
"It's going to be tougher," O'Neal said. "We have to rely on the teams ahead of us to falter. We have to keep fighting and see what happens."
Martin had 18 points and J.R. Smith 14 for Denver (45-26), who remained tied for the best start in franchise history.
Denver center Nene, who had 10 points, was given a flagrant foul 2 and ejected with 7:25 remaining when he grabbed Suns center Louis Amundson and threw him to the floor under the Suns' basket after Billups missed a 3-point field-goal attempt with the Suns leading 97-96.
"We missed him out there. We needed him," Anthony said.
"The possession before that [flagrant foul], he head-butted me," said Amundson, who had seven points and seven rebounds in 20 minutes. "I play hard. I don't back down from anybody. A lot of these tough guys, they expect guys to back down. They don't like it when the other players don't back down. That frustrates them."
The Suns have averaged 131.5 points a game in their last four, passing Golden State to become the highest-scoring team in the NBA with a 108.8 average. The Suns ranked fifth in the league at 104.4 points per game when Alvin Gentry replaced Terry Porter at the All-Star break. ... The Suns led opponents for the previous 90 minutes, 19 seconds before Nene hit a 15-foot jumper 46 seconds into the third quarter Monday to give Denver a 64-63 lead. Phoenix led wire to wire in a 128-96 victory over Washington on Saturday and hadn't trailed since midway through the third quarter of a 116-106 victory over Philadelphia on March 18. ... The Suns have won 13 of the last 18 against Denver, and the last nine in Phoenix. ... Phoenix guard Goran Dragic tied a career high with two 3-pointers.