Heyward, entering his 13th season, left in the first half with a groin injury. The 34-year-old Heyward, the team's longtime defensive captain, tried to test the groin shortly after leaving before being ruled out for the rest of the game.
The 49ers took advantage of Heyward's absence, gashing the Steelers on the ground behind Christian McCaffery.
Johnson, coming off an 86-catch season that somehow did not include a touchdown, tweaked his right hamstring after a 26-yard reception early in the third quarter. Johnson had three catches for 48 yards at the time of the injury. He was replaced by veteran Allen Robinson, who joined the Steelers following an offseason trade by the Los Angeles Rams.
AP NFL: https://apnews.com/hub/nfl