Paul Millsap also had 20 points for Atlanta, which earned its second straight impressive home win following a victory over Indiana on Wednesday night. The two victories were important following a three-game losing streak and Horford's torn right pectoral muscle in late December.
"It's a real good win for us because it really shows we played some good teams and we actually played some good defense," Millsap said. "It started with the defense and if we continue to keep that up, we'll be fine."
Houston coach Kevin McHale said his players "were just stuck in the mud offensively."
"I think they took the game in the second half with how hard they played on defense," Lin said.
The Hawks overcame Houston's 11-0 run to start the game. The Rockets then battled back from an eight-point deficit with another 11-0 run to regain the lead at 76-73. Korver's 3-pointer tied the game. Following a basket by Harden, DeMarre Carroll's 3-pointer gave Atlanta a 79-78 lead. The Hawks didn't trail again.
"I think the group is really starting to trust each other defensively," Hawks coach Mike Budenholzer said. "The competitiveness that they're putting out there, it starts on the defensive end of the court. ... It's just good to see that trust being built up."
The strong defensive effort came against one of the highest-scoring teams in the NBA. Entering the game, the Rockets ranked third in the league with their average of 105.8 points.
Harden, who had seven assists and five turnovers, was unable to extend his streak of three straight games with at least 37 points.
"Guys just couldn't get into a rhythm," he said. "Guys were just sluggish tonight, including myself."
It was a disappointing start to Houston's four-game road trip.
"We talked about it before the game," Harden said. "We just came out flat."
With Atlanta leading 79-78, Korver made two free throws to push Atlanta's lead to three points. Following a timeout, Harden drove toward the basket and passed to Lin, whose foot was on the 3-point line as he sank a jumper with 6.5 seconds left, cutting the Hawks' lead to 81-80.
The Rockets quickly fouled Korver, who made both free throws. Houston couldn't get off an attempt at a last-second 3.
The Hawks matched their season low for first-half points but trailed only 41-39 at the break.
Official reviews confirmed Atlanta's first basket and last shot from the field in the half came after the clock expired. Millsap's layup, which initially was approved for a 2-all tie, was disallowed when the review showed it came after the 24-second clock expired. Jeff Teague's layup at the end of the half, which would have tied the game, came after time expired.
Korver made 3-pointers on back-to-back possessions midway through the third period for the first tie at 57-all. Millsap's driving basket gave Atlanta its first lead at 61-59, and the Hawks stretched the lead to 73-65 with 8:32 remaining.
Mistakes by the Hawks, including a 24-second violation, a missed layup by Pero Antic and a turnover by Millsap, helped the Rockets close the gap. Brooks' 3-pointer cut Atlanta's lead to 73-72.
Harden made two of three free throws with 3:50 remaining to give Houston its first lead of the period at 74-73.
Korver extended his NBA record of consecutive games with at least one 3-pointer to 106 when he made his first of four 3s with 9:03 left in the first half.
NBA great Julius Erving had a front-row seat. ... Howard, an Atlanta native, purchased 35 tickets for the game. ... The Hawks' 10 first-quarter points set a season low for any quarter and was the low allowed by the Rockets in any quarter. ... Houston C Omer Asik (right thigh, knee) missed his 18th straight game. ... F Greg Smith (sprained right knee) returned and had four points after missing the Rockets' previous game.