Matt Murray made 21 saves for the Penguins (33-22-8), who are tied in points with the Carolina Hurricanes for third in the Metropolitan Division and had lost two games in a row.
"It's a big confidence builder," McCann said. "We kind of let up there in the second (period) but we found a way to get two points."
[WATCH: All Penguins vs. Blue Jackets highlights]
Sergei Bobrovsky made 22 saves for the Blue Jackets (35-24-3), who are one point behind the Penguins for the second wild card into the Stanley Cup Playoffs from the Eastern Conference. They had won seven of their previous 10 games.
The Blue Jackets played their first game since the NHL Trade Deadline on Monday. Since Friday, they've acquired center Matt Duchene, who played his third game for the Blue Jackets, and forward Ryan Dzingel from the Ottawa Senators in separate trades; defenseman Adam McQuaid from the New York Rangers; and goalie Keith Kinkaid from the New Jersey Devils.
Video: PIT@CBJ: Malkin hammers shot in off defender
Dzingel, who had an assist and played 10:54, and McQuaid, who had a shot and a blocked shot in 9:38, each made his Columbus debut.
Coach John Tortorella said the Blue Jackets still have work to do to reach the playoffs.
"We better understand that we need to get in and we're not going to skill our way in no matter what the transactions were," he said. "We need stay true to our identity or we're not going to get in."
Pittsburgh had two players leave because of injury for the second straight game. Forward Bryan Rust left with a lower-body injury with 1:05 remaining in the first period after a collision with McQuaid, and defenseman Chad Ruhwedel left at 11:34 of the second with an upper-body injury following a check by Nick Foligno.
Video: PIT@CBJ: Guentzel finishes pretty passing play
Rust left the locker room in a boot, and Ruhwedel was wearing a sling. Penguins coach said Mike Sullivan each will be evaluated Wednesday.
Defensemen Brian Dumoulin (concussion) and Kris Letang (upper body) did not play because of injuries sustained in the 2019 Coors Light NHL Stadium Series at Lincoln Financial Field in Philadelphia on Saturday.
"It's unfortunate losing good players," Penguins defenseman Jack Johnson said. "We play a contact sport. You never know what's going to happen."
Jake Guentzel gave Pittsburgh a 1-0 lead at 13:45 of the first period with a one-timer from between the circles. It was his fourth goal in two games against Columbus this season.
Seth Jones had a goal that would have tied it at 15:16 of the first overturned for goaltender interference after a challenge by Sullivan.
McCann extended the lead to 2-0 at 18:22.
Video: PIT@CBJ: Atkinson buries shot from circle for PPG
Malkin made it 3-0 at 1:15 of the second with a shot from the inside the blue line along the left side for his 20th goal of the season.
"Too big a hole," said Foligno, the Columbus captain. "That's frustrating that first period, especially this time of the year, too. We can't spot a team three goals. We knew they were banged up, too. We've got to play the right way in the first and we didn't."
Oliver Bjorkstrand scored from the top of the left face-off circle during a delayed penalty to make it 3-1 at 4:55 of the second. Dzingel had the primary assist.
"We definitely had a good second period," Bjorkstrand said. "It's hard to answer why we didn't come out the same way in the third period. If we wanted to win that game, we had to play more like the second period."
Cam Atkinson scored on a rebound from the right circle 11 seconds into Columbus' first power play to make it 3-2 at 7:09.
Video: PIT@CBJ: Crosby scores empty-net goal
McCann made it 4-2 at 3:27 of the third.
Sidney Crosby scored into an empty net with five seconds left for the 5-2 final.
They said it
"We've got nothing but character in here. Guys stepped up. It's tough to see teammates go down. They're important guys for us, but we've still got a job to do." -- Penguins goalie Matt Murray
"This group needs to understand there's a higher expectation within us. We had this expectation whether the trade deadline happened or who we got. There's an expectation to be a great team, and tonight we only did it for two periods and that's not who we are." -- Blue Jackets captain Nick Foligno
Need to know
The Penguins have won seven straight games against the Blue Jackets and are 8-0-1 in their past nine against them. … Malkin has 14 points (six goals, eight assists) in his past 11 games and 24 points (eight goals, 16 assists) in his past 18. … Crosby, who had a goal and an assist, has 16 points (four goals, 12 assists) in his past nine games. … Penguins defenseman Erik Gudbranson, who was traded to Pittsburgh from the Vancouver Canucks on Monday, was awaiting immigration clearance to join Pittsburgh. … Columbus forward Artemi Panarin had an assist and has 17 points (six goals 11 assists) in his past 14 games. … Atkinson has four points (three goals, one assist) in his past three games.
Penguins: At the Buffalo Sabres on Friday (7 p.m. ET; SN, MSG-B, ATTSN-PT, NHL.TV)
Blue Jackets: Host the Philadelphia Flyers on Thursday (7 p.m. ET; FS-O, NBCSP, NHL.TV)
Video: McCann, Crosby push Penguins past Blue Jackets, 5-2