Two free throws by Danilo Gallinari with 2:34 remaining gave Denver its first lead of the final period at 98-97. Lawson's 3-pointer gave Denver a 101-99 advantage before Horford hit a tying jumper.
Following a missed jumper by Denver's Kenneth Faried, Williams made two free throws. Smith then delivered the key three-point play.
"We've just got to get better in late-game situations — me included," Lawson said.
"Letting teams get offensive rebounds, putbacks and turnovers, that's what killed us tonight. If we could have controlled that we could have won by at least 15 points."
The Nuggets were without center Kosta Koufos, who remained at the team hotel with the flu. Timofey Mozgov had six points and 13 rebounds in his first start of the season.
The Hawks had first-half success with their big lineup, with Zaza Pachulia at center and Horford shifting from center to power forward. The big lineup usually benefits Horford, who has room for more scoring opportunities away from the basket.
Pachulia also thrived with extended playing time, scoring all 11 of his points in the second quarter as the Hawks took a 55-51 halftime lead.
The Hawks' biggest lead was 73-62 at the end of a 10-0 run in the third period.
Gallinari had 16 points and JaVale McGee had 11 for Denver. Iguodala shot only 2 of 10 for five points, including the late 3-pointer, and a game-high seven turnovers.
Devin Harris had 12 points for Atlanta. Williams led the Hawks with six assists.
NOTES: The Hawks ended a four-game losing streak in the series with their first win over the Nuggets since Nov. 7, 2009. ... Hawks G Kyle Korver was away from the team and with his wife, who is expecting the couple's first child. The team recalled rookie G John Jenkins from its Bakersfield NBA Development League affiliate. Jenkins did not play. ... Lawson and Andre Miller each had seven assists.