DENVER -- Atlanta coach Mike Woodson was pleased with his team's effort.
Trailing by 15 points in the fourth quarter, the Hawks didn't give up, rallying to beat the Denver Nuggets 98-96 on Wednesday night.
"This was huge win from a group that doesn't quit and competes from beginning to end," the Atlanta coach said. "We were down huge in the fourth quarter, and we just kept chipping away and kept making play after play after play to get the win."
Joe Johnson scored 27 points and Shelden Williams hit two free throws with 5 seconds left to get the victory.
"We got the lead and we quit," Denver coach George Karl said of his team which led 84-69 after a dunk by Linas Kleiza with 9:32 left in the game.
"The inclination is to get a big lead and let up," said. "And we did. After that basket, we had too much I and not enough we."
Salim Stoudamire added 21 points for Atlanta, which ended a two-game losing streak.
The Hawks also held Carmelo Anthony under 30 points for the first time in seven games. He finished with 24 points, failing to break the team record he shares with Alex English for consecutive 30-point games.
Marcus Camby added 11 points and 15 rebounds and came within two assists of his first triple-double of the season.
Anthony, the NBA's leading scorer, had a key basket with 2:39 left in the fourth quarter that put Denver ahead 93-92.
"We went into the zone in the fourth quarter and got some key stops and got into a transition game for some key baskets," Johnson said. "We stayed in the zone because it was giving them problems."
The lead changed hands several times down the stretch as Stoudamire's 3-pointer briefly put the Hawks ahead 94-93 before Andre Miller's jumper made it 95-94 with 1:16 left. JR Smith converted one free throw, but Stoudamire's basket off a goaltending call tied it at 96 with 38 seconds left.
Anthony missed a shot in the paint on Denver's next possession. Williams was fouled and converted both free throws for Atlanta to give the Hawks a 98-96 lead.
"I had been in that situation a lot of times in my (college) career at Duke," Williams said. "I just looked at it as two free throws, and not that it was going to win the game. That worked for me."
Denver had two chances at the end to tie it, but Andre Miller and Camby missed shots.
"The play was designed for me to drive the lane and make a play for someone else," Millers said. "I ended up taking the shot and it didn't go."
Atlanta played without center Zaza Pachula, who received a one-game suspension without pay for elbowing Johan Petro in the final minute of the third quarter of a game the night before in Seattle.
Anthony made his first shot and free throw of the fourth quarter and a basket by Earl Boykins with 8:41 left put the Nuggets ahead 88-74. Johnson's jumper with 6:10 capped an 13-0 run to close the gap to 88-87.
Anthony had 15 points by halftime, but the Nuggets trailed 48-44 at the break.
"We gave up a big lead and gave up nearly 40 points to them in the fourth quarter," said Miller. "We deserved to lose."
Atlanta has won nine of the past 12 meetings with the Nuggets. ... The Hawks are 2-2 on the second night of back-to-back games. ... Nine World War II veterans were honored before the game. ... C Nene missed his 12th consecutive game with a right knee contusion. ... F Joe Smith played after sitting out two games with a sprained right ankle. ... Denver hurt itself converting only 16-of-33 free throws.