The Thrashers lost for the sixth time in seven games and the Blues ended a two-game losing streak and are 5-5-1 away from home.
Tkachuk tied the game at 2 late in the second period with the 1,000th point of his career, then Boyes scored with 8:15 to play in the game.
"It was exciting to celebrate and have the guys come out on the ice. Just the way the guys reacted was pretty cool," Tkachuk said. "I was in the right place at the right time."
Boyes knocked in a rebound of a shot by Carlo Colaiacovo for his 12th goal of the season and Jay McClement added an empty net goal with 2.6 seconds left in handing the Thrashers their sixth loss in seven games.
Tkachuk, in his 17th NHL season, has 511 goals and 489 assists in 1,077 games.
"I've played a long time, and this just means I'm just getting older," the 36-year-old said. "I appreciate the game more as I get older. I've been fortunate."
"We played 20 minutes of a 60-minute hockey game -- the first 20 -- and it wasn't enough," Havelid said.
St. Louis opened the scoring 4:38 into the game when David Backes scored his fourth goal from in close.
Armstrong tied it less than two minutes later knocking in a rebound past St. Louis goalie Chris Mason. Havelid then gave Atlanta the lead with 1:25 left in the period with his first goal of the season, a shot from the blue line that went over a screened Mason's left shoulder. Slava Kozlov and Todd White drew assists.
St. Louis defenseman Jeff Woywitka had assists on the goals by Backes and Boyes.
The Blues outshot the Thrashers 47-30.
- This was the only game between the two teams this season.
- Atlanta C Bryan Little has 13 points (seven goals, six assists) in his last 14 games.
- F Kozlov's assist gave him 18 points (10 goals, eight assists) in his last 16 games.
- Mason, who made his eighth start, shut out Nashville 1-0 in his last start on Tuesday.
- Tkachuk became the sixth U.S. player and 72nd overall with at least 1,000 points.
- Thrashers D Mathieu Schneider suffered an upper body injury and did not return.