A three-goal lead turned into bedlam for the Columbus Blue Jackets.

Lucky for them they had goalie Sergei Bobrovsky and several other people making plays at the finish.

Jack Skille, Ryan Johansen and Matt Calvert scored goals and Bobrovsky stopped 29 shots to hang on for a 3-2 victory over the Calgary Flames on Friday night.

"It was chaotic," Columbus coach Todd Richards said. "Sometimes it's going to get scrambled like that. Guys were diving head first — sometimes they didn't even have sticks — and that's what you need. You'd like to be in control but you could see that the guys cared."

Mason Raymond broke up Bobrovsky's shutout early in the third period. Josh Jooris narrowed the lead with a goal in his NHL debut, scoring off a stretch pass from Mark Giordano with over eight minutes left.

From there to the finish, it was frantic, with a crowd of 15,987 screaming, the Flames pressing and Bobrovsky and his teammates doing just enough to prevent a score.

Calgary, five games into a six-game road trip after opening at home, threatened to the end.

"In the third period, we were pressuring and they were coughing up the puck," Flames coach Bob Hartley said. "It's too bad. We put on quite an effort but we just couldn't get that tying goal."

Blue Jackets veteran defenseman Fedor Tyutin, who made a big play when he cleared the puck in the final minute, said the crazy finish would benefit the NHL's youngest team.

"Obviously, we can learn some lessons from this game," he said. "It's natural when a team's got a comfortable lead they kind of step off the gas. That's what happened to us today."

Calvert had an assist to go with his goal. Mark Letestu had two assists as the Blue Jackets wrapped up a three-game homestand.

Raymond scored seconds after a power play ran out, converting off a pass from Curtis Glencross, who formerly played for the Blue Jackets.

Then Jooris, a free-agent signing out of Union College, converted Giordano's long pass with a forehand high over Bobrovsky's glove to make things more than interesting.

The Flames weathered a Columbus power play and then applied heavy pressure in the waning moments. Bobrovsky blocked a high, hard shot by Giordano in the final minute and the Flames also had a shot ping off the post with just under two minutes left.

"They got a quick goal and kind of got the momentum and put us back on our heels," Skille said. "We just have to work on our killer mentality as a team. When we get ahead like that, we have to keep pushing teams and keep playing the way that got us there."

Karri Romo, who had 23 saves, lost for the first time after a 2-0 start.

In their first loss on Tuesday night, a 4-2 setback to Dallas, the Blue Jackets had been passive in the opening period and fell behind 2-0. They reversed that against the Flames.

Letestu wheeled from the left corner toward the crease and fed Skille, who was charging the net, for a one-timer and a 1-0 lead at the 2:59 mark.

On the power play just over two minutes later, Cam Atkinson worked hard to control the puck in the offensive zone before feeding Nick Foligno, who swept toward Ramo and then slipped a backhanded pass to Johansen for a quick shot to double the score.

Johansen, who missed almost all of training camp in a holdout before signing for $12 million over three years, has three goals and three assists in the first four games. Foligno also extended his points streak to four games.

Ramo then stopped Letestu's offbalance shot with the toe of his right skate, but Calvert swooped in to jam the puck in as it sat near the goal line.

"I just turned around and saw the puck," Calvert said. "(Letestu) made a great play and unfortunately I stole (the goal) from him."

NOTES: Calgary rookie forward Johnny Gaudreau was a healthy scratch after just one shot on goal in his first five games. ... As a part of the Hockey Fights Cancer initiative, the Blue Jackets wore purple sweaters during pregame warmups that were then auctioned off for the charity. ... Flames forward Devin Setoguchi was scratched for an undisclosed reason.

___

Follow Rusty Miller on Twitter: http://www.twitter.com/RustyMillerAP