On June 27, 2018, it was reported that the Pittsburgh Penguins were interested in signing him in the free agency period. Johnson's signing was made official by the Penguins on July 1, 2018, announcing a five-year, $16.25 million agreement. Johnson wore number 73 for the Penguins as veteran Matt Cullen wore his usual number 7. For the 2019–20 season, Johnson would again change his number from 73 to the number 3 following the departure of Olli Määttä, who previously wore number 3, from the Penguins.