Kovalchuk scored into an empty net with 1:01 remaining, completed a hat trick and pushing his goal total to 48 this season.
The loss put a dent in the Flames' playoff chances. Calgary entered the game in a virtual tie for first place in the Northwest Division, sixth overall in the Western Conference, but several teams were within points of the Flames in a bid for one of eight playoff berths with 11 games left.
The Thrashers, down 3-0 early in the second period, tied it at 4 on a goal by Chris Thorburn at 10:10 of the third period.
Holik scored the winner with 3:47 left, beating goalie Curtis Joseph. It was the Flames' second loss in a row and third in four games.
Jarome Iginla scored two goals giving him four in three games and Daymond Langkow added a short-handed tally and two assists to lead Calgary.
Wayne Primeau added a goal for the Flames in the second period for a 4-2 lead.
Kovalchuk scored twice and Colby Armstrong also found the net during a three-goal second period that got the Thrashers within 4-3.
Langkow opened the scoring with his 27th goal when he stole the puck from Tobias Enstrom and easily beat goaltender Kari Lehtonen 13:57 into the first period.
Just over four minutes later, Iginla made it 2-0 with his 43rd, assisted by Langkow and Adrian Aucoin.
Calgary made it 3-0 when Iginla converted a rebound of Langkow's shot past Lehtonen 2:45 into the second period.
The Thrashers, however, scored a pair of goals within 19 seconds of the second period to cut their deficit to 3-2.
Kovalchuk scored his first by knocking in a rebound of a shot by Holik, who had two assists, at 4:29 of the second period. Armstrong netted his 12th, firing a shot past Curtis Joseph, who had just stopped a shot by Eric Perrin but was out of position for the rebound at 4:48.
Calgary made it 4-2 on Primeau's third goal, scored at 12:39 of the middle period.
Kovalchuk made it 4-3 with his 47th goal, a power-play drive with 2:24 left in the second period.
-- NOTES: Joseph, an 18-year NHL veteran, made his fourth start since signing as a free agent on Jan. 16. ... Only 2:10 into the game, the Flames' Eric Godard and Atlanta's Eric Boulton fought for nearly a minute. ... Atlanta's Mark Recchi played in his 1,400th NHL game, fifth among active players, 26th overall.

Calgary Flames defenseman Cory Sarich (6), left, checks Atlanta Thrashers left wing Ilya Kovalchuk, right, of Russia, during the first period on Thursday during the Thrashers' win at Philips Arena in Atlanta. / photo: Associated Press
http://accesswdun.com/article/2008/3/207975