Reilly Smith had a goal and an assist for the Golden Knights (42-21-6), who went 0-for-4 on the power play and had a four-game winning streak end. Jonathan Quick made 23 saves in his first loss since being acquired from the Columbus Blue Jackets on March 2 (4-1-0).
Vegas is just one point ahead of the Los Angeles Kings for first place in the Pacific Division after Los Angeles won 4-1 against Columbus on Thursday.
"We got in our own way tonight in a lot of different ways," Golden Knights coach Bruce Cassidy said. "Our power play was 'fill in the blank.' I'll settle for awful because that's what it was, and it had a chance to be a difference maker tonight."
Weegar gave the Flames a 1-0 lead at 15:05 when his shot from the blue line hit Pavel Dorofeyev's stick and beat Quick five-hole.
"Nice to see it go through," Weegar said. "I'm sure it was probably 45 miles per hour, but it's nice that it went through."
Toffoli extended the lead to 2-0 at 3:39 of the second period. After Vegas forward Ivan Barbashev turned the puck over in his own end, Toffoli took a pass from Elias Lindholm, drove to the net and slid it past Quick while falling down.
Zach Whitecloud cut it to 2-1 at 12:33 with a wrist shot from just outside the right face-off circle.
Smith tied it 2-2 at 15:54, one-timing a cross-ice feed from William Karlsson, but Coleman put Calgary back in front 3-2 on a redirection of Lindholm's shot at 17:17.
"You got to have push back on this team," Coleman said. "They're a good team. They're going to have their pushes. Obviously, you don't want to blow a two-goal lead isn't the way you want it. We were able to respond tonight. That's been big. It's been missing in our game a bit in the past. From there, it was a great third and the guys did a good job."
Backlund made it 4-2 on a power play at 8:40 of the third period when his shot bounced off Alex Pietrangelo's stick.
The Flames broke the game open with three more goals in 2:55.
Toffoli got his second goal of the game at 13:16 of the third to make it 5-2, and Coleman scored into an empty net at 15:43 to give Calgary a 6-2 lead.