Gee rebounded the missed 3-pointer by Waiters and quickly followed up for the tiebreaking basket. The Hawks, out of timeouts, couldn't manage a shot before time expired.
|More on Cavaliers-Hawks|
|More NBA coverage|
"I thought it was good," Gee said of Waiters' shot. "He was in rhythm and I thought it was going in. And then I caught it and I was, like, 'Oh!"'
Cavaliers coach Byron Scott wanted Waiters to attempt a higher-percentage shot.
"Yeah, I guess I've got to be a little more specific and say, 'Try to get to the basket,"' Scott said.
Scott said Gee "bailed him out."
"It didn't touch nothing," Scott said of Waiters' shot. "Luckily, Zo was there to rebound the ball and put it in."
Josh Smith took the blame for Atlanta's loss, saying he should have boxed out Gee but instead was "ball watching" on Waiters' shot.
Jeremy Pargo led Cleveland with 22 points, including three straight baskets late in the game. Waiters scored 21 and Anderson Varejao had 20 points and 18 rebounds as Cleveland earned its second road win in 11 tries.
Smith had 25 points for Atlanta, which had won six in a row. Al Horford had 15 points and 11 rebounds, but he got little help as the Cavaliers outrebounded the Hawks 49-28.
"I think this was a reality check for us in a way that we need to get back to work and get better on the defensive end," Horford said, adding the Hawks "got baited" into a high-scoring pace.
Tristan Thompson had 15 rebounds and six points for the Cavaliers.
Daniel Gibson's 3-pointer with 4:24 remaining gave Cleveland its first lead of the second half at 99-97. Smith scored for Atlanta before Pargo took over with three straight baskets for a 105-99 lead.
Pargo then set up Varejao for a running jump shot, and Waiters converted a layup to give Cleveland a four-point lead. Smith's 3-pointer with 18 seconds remaining trimmed the difference to one. Varejao sank two free throws before Williams answered with a tying 3-pointer with 13.6 seconds left.
Varejao posted his seventh straight double-double. It was his 11th game with more than 15 rebounds this season. He began the night with an NBA-best 14.9 rebounds per game.
Varejao had help; the Hawks never found an answer for Pargo's drives to the basket.
"We had a tough time defending them off the dribble," Atlanta coach Larry Drew said.
Asked what his guards should have done better against Pargo, Drew said: "Defend him. Just take the personal challenge and defend him."
Drew said the Hawks, who survived recent close wins over Washington and Charlotte, can learn from the loss.
"I told the guys, maybe we needed a game like this," Drew said. "We've been home for a little while and we've dodged a couple of bullets with some teams."
Cleveland led 54-50 with less than 3 minutes to go in the first half before the Hawks closed out the quarter with a 17-2 run. Smith started the run with three straight baskets; a 3-pointer, followed by a jam on Teague's assist and then a hook shot.
Drew called timeout with 2 seconds remaining. Ivan Johnson took the inbound pass, dribbled a few feet beyond the top of the arc and then launched a buzzer-beating 3-pointer -- only the third of his career.
A smiling Johnson celebrated with chest bumps from Smith and Anthony Morrow as the Hawks left the court leading 67-56.
The Hawks kept the lead until late in the fourth quarter.
"It was one of those nights where we would play hard, get comfortable, play hard, get comfortable," said Williams, who had 18 points. "At the end it cost us. It didn't come down to the one offensive rebound where they lay it up. That's the one that everybody will look at, but I think they did a good job of rebounding the ball all night."
- The Hawks went 23 for 32 at the foul line, compared to 21 of 22 for the Cavs.
- Gibson returned after missing one game with a sore right elbow.
- Cleveland ended a streak of seven straight losses in the series. The Cavaliers' last win in the series came on April 2, 2010, and their last win in Atlanta was on Dec. 29, 2009.
- Atlanta's DeShawn Stevenson made four 3-pointers for 12 points.