Johnson played college football for Toledo from 2015 to 2018.[3][4] During his time at Toledo, he had 135 catches for 2,235 yards and 23 touchdowns. He also had four rushing attempts for 26 yards. His sophomore year was his best, where he had 74 catches for 1,278 yards and 13 touchdowns.[5]
Johnson was drafted by the Pittsburgh Steelers in the third round, 66th overall, of the 2019 NFL draft.[8] The Steelers originally acquired the selection in a trade that sent Antonio Brown to the Oakland Raiders. Johnson made his NFL debut in Week 1 against the New England Patriots. In the game, Johnson made three catches for 25 yards in the 33–3 loss.[9] In Week 3 against the San Francisco 49ers, Johnson caught three passes for 52 yards and his first career touchdown as the Steelers lost 24–20.[10] In Week 8 against the Miami Dolphins, Johnson caught five passes for a career-high 84 yards, including a 45-yard touchdown, in the 27–14 win.[11] In Week 11 against the Cleveland Browns on Thursday Night Football, Johnson was concussed after safety Damarious Randall made a helmet to helmet hit on him.[12] In Week 14 against the Arizona Cardinals, Johnson caught six passes for 60 yards and a touchdown and returned a punt for an 85-yard touchdown in the 23–17 win, earning him AFC Special Teams Player of the Week.[13][14] On January 3, 2020, Johnson was named to the NFL All-Pro Second-team as a punt return specialist.[15] Overall, Johnson finished the 2019 season with 59 receptions for 680 receiving yards and five receiving touchdowns.[16]
2020
Johnson finished the 2020 season with 88 receptions for 923 receiving yards and seven receiving touchdowns in 15 games. He had two games going over the 100-yard mark on the season.[17]
In the Wild Card Round of the playoffs against the Browns, Johnson recorded 11 catches for 117 yards during the 48–37 loss.[18]
2021
Johnson finished the 2021 season with 107 receptions for 1,161 receiving yards and eight receiving touchdowns in 16 games. He had three games going over the 100-yard mark on the season.[19]
In the Wild Card Round of the playoffs against the Kansas City Chiefs, Johnson caught five passes totaling 34 yards and a touchdown in the 42–21 loss.[20]
On August 4, 2022, Johnson signed a two-year, $36.71 million contract extension with the Steelers that included $27 million guaranteed.[22]
In Week 15 against the Carolina Panthers, Johnson had his best game of the season with 10 receptions for 98 yards, both season highs.[23] He finished the 2022 season with a team-high 86 receptions for 882 yards and zero touchdowns, setting an NFL record for most receptions in a season without a touchdown.[24]
2023
Johnson opened up the 2023 season against the 49ers, in which he sustained a hamstring injury, taking him out of action for at least a month.[25] He was placed on injured reserve on September 18, 2023.[26] He was activated on October 21, 2023.[27] He caught a touchdown in week 9 against the Tennessee Titans, his first in 655 days.[28] He also had a season-high 90 yards in the same game. He finished the 2023 season with 51 receptions for 717 yards and five touchdowns.[29]
Carolina Panthers
On March 12, 2024, the Steelers traded Johnson to the Carolina Panthers for cornerback Donte Jackson and the 178th overall pick in the 2024 NFL draft, which Pittsburgh used to draft Iowa DT Logan Lee.[30]
Johnson led the Panthers in receiving through seven games, with 30 catches for 357 yards and three touchdowns. His best game as a Panther came in Week 3 against the Las Vegas Raiders, recording eight receptions for 122 yards and a touchdown in a 36–22 victory.[31] He did not play in Week 8 against the Denver Broncos due to an oblique injury.[32]
Baltimore Ravens
On October 29, 2024, Johnson and a 2025 sixth-round pick were traded to the Baltimore Ravens for a 2025 fifth-round pick.[33][34] On December 4, Eric DeCosta, the executive vice president and GM of the Ravens, announced that Johnson was suspended for one game due to conduct detrimental to the team. This suspension was caused by Johnson refusing to enter the Ravens Week 13 game against the Philadelphia Eagles, where the Ravens lost 24-19.[35]
On December 20, 2024, Johnson was waived by the Ravens. [36]
Houston Texans
On December 23, 2024, Johnson was claimed off waivers by the Houston Texans.[37]