Richardson had driving layups on back-to-back possessions in the final minutes, when the Heat went on a 17-6 run that decided things.
"J-Rich gets it done, on the offensive end and especially on the defensive end," Ellington said. "He's huge for us. He's a leader out there on the floor. He's really evolving, his game's evolving, he's getting better every day. He's becoming the type of player he's definitely capable of being."
Ellington scored 20 points and Goran Dragic finished with 19 for Miami, which started 14 of 24 from 3-point range -- and then went 0 for 13 the rest of the way, yet prevailed anyway.
Richardson had eight of his points in the fourth for the Heat. Plus, he was stellar again on the defensive end with two steals and two blocks.
"What didn't J-Rich do tonight?" Heat coach Erik Spoelstra said. "He was great defensively. Those were the type of plays at the rim that we had a former 2-guard here make, those kind of blocks. There's not many 2s in the league who can make those kind of plays."
Kent Bazemore and Taurean Prince each scored 20 for the Hawks, while John Collins had 14 points and 11 rebounds off the bench for Atlanta. The Hawks went on a 33-12 run in the second half to tie the game at 77, but never got the lead down the stretch even as Miami went from sizzling to icy in an instant.
"It's rare that a team stays that hot for so long," Bazemore said. "We stayed the course. We came out in the third quarter and gave them a good punch to start the third. The biggest thing from tonight is we stayed steady, kept plugging away and gave ourselves a chance."
It looked like a rout early.
Ellington's six 3s in the second quarter tied a Heat player record for 3-pointers in any quarter, alongside only Brian Shaw in 1993, and tied the team mark for 3s in a half. Miami's 13 first-half 3s set a franchise record, for any half.
The Heat led by double digits for most of the second quarter, took an 18-point lead into halftime and stretched it to 21 when Dragic got the third quarter started with a 3-pointer.
Exactly 12 minutes later, it was tied -- but the Heat escaped.
"We found a way to scrap our way back," Hawks coach Mike Budenholzer said.
Hawks: Bazemore scored Atlanta's first seven points, and was the only Hawk to score in the first 7:13. ... Former Heat forward Luke Babbitt made his first four shots, including a 3-pointer right in front of the Miami bench. ... Belinelli went over the 15,000-minute mark for his career.
Heat: Miami came into the game with an NBA-fewest 21 free throws made this season, and went 12 for 18 -- after a 1 for 5 start. ... Out of the first 21 Heat field goals, 12 were 3-pointers. ... Tyler Johnson was 1 for 9, missing all four of his 3-point tries.
Dragic got shoved in the third quarter, starting a brief exchange of players getting in each other's faces. Prince was assessed a Flagrant-1, and Dragic, Waiters and Atlanta's Dewayne Dedmon all were called for technical fouls.
Atlanta was without PG Dennis Schroder (sprained left ankle) and F Ersan Ilyasova (strained left knee), both of whom started in Brooklyn on Sunday. That's on top of the Hawks already missing DeAndre' Bembry (broken right wrist) and Miles Plumlee (strained right thigh).
The Heat were without C Hassan Whiteside (bruised left knee) for a second consecutive game. Whiteside has grabbed at least 10 rebounds in all seven of his appearances against the Hawks. He's listed as day-to-day.
Hawks: Atlanta's season-opening five-game trip ends Thursday in Chicago.
Heat: Miami plays the third game of its six-game homestand Wednesday against San Antonio.
More NBA basketball: https://apnews.com/tag/NBAbasketball
LeBron James explains what scoring 30,000 points would mean to him and how he hopes to do it at home.
Mike Miller says Damian Lillard should be frustrated with lack of All-Star appearances because he's producing and his team's winning.
Wednesday's midseason slate led to many poor box scores, even from stars like Paul George. Here's a look back and a look ahead to some potentially better matchups tonight.