Aston-Reese put Columbus ahead 1-0 on its second shot on goal at 2:42 of the first period. A slap shot from Zach Werenski hit Pittsburgh forward Noel Acciari and went to Aston-Reese, who scored his first goal in 25 games this season on a wrist shot from the slot.
Clifton tied it 1-1 at 9:59 with his first goal of the season, a snap shot through traffic and past Merzlikins’ glove from the right face-off circle.
Rakell gave the Penguins a 2-1 lead at 17:52 by chipping in a pass Crosby sent out front from the far corner.
Marchenko tied it 2-2 at 7:32 of the second period, beating Crosby to a loose puck and driving to the right circle for a wrist shot to score his 18th goal this season and eighth in the past 13 games.
Heinen put Columbus in front 3-2 at 17:38. He deflected a point shot from Erik Gudbranson for his first goal in eight games since being acquired in a trade that sent Chinakhov to Pittsburgh on Dec. 29.
"I'd be lying if I didn't say it felt good,” Heinen said. “But the win definitely feels better. Just try to keep this thing going. ... That's a team we're chasing. So, I think everybody realizes how big it was."
NOTES: The Blue Jackets have won twice in Pittsburgh in the same season for the first time since entering the NHL in 2000. They won 5-4 in a shootout here on Oct. 25. ... Crosby factored on a game-tying goal in the third period for the 108th time of his career, passing Jaromir Jagr (107) for the third-most in League history behind Wayne Gretzky (135) and Mark Messier (112). ... The Blue Jackets and Penguins played past regulation in each of their four meetings. After the shootout loss on Oct. 25, Pittsburgh won 4-3 in overtime on Nov. 28 and 5-4 in overtime on Jan. 4. ... Columbus defenseman Dante Fabbro left midway through the first period with a lower-body injury. He will be evaluated on Sunday, Bowness said.