As a true freshman at Minnesota in 2016, Johnson played in all 13 games with one start and had 14 receptions for 141 yards and one touchdown. As a sophomore in 2017, he started the first ten games of the season before suffering an injury which cost him the final two games. He ended the season with 35 catches for 677 yards and seven touchdowns. As a junior in 2018, Johnson started all 13 games, recording 78 receptions for school records 1,169 yards and 12 touchdowns.[4][5] He was voted First-Team All-Big Ten Conference by the media, and Second-Team by the coaches.[6] Johnson returned to Minnesota for his senior season in 2019 rather than enter the 2019 NFL draft.[7][8] In his senior season, Johnson caught 86 passes for 1,318 yards and 13 touchdowns, all of which led the Big Ten and set new single-season school records. This earned him First-Team All-Big Ten honors.[9] His season was capped by a 12-reception, 204-yard, two-touchdown performance against Auburn in the Outback Bowl, and he was named the 2020 Outback Bowl MVP.[10] His 12 catches were tied for the 3rd most by a Minnesota receiver in one game, and his 204 yards were the second-most by a Minnesota receiver in one game. Johnson left Minnesota second all-time in receptions, with 213, and the all-time leader in both receiving yards, with 3,305, and receiving touchdowns, with 33.[11]
Johnson was selected by the Tampa Bay Buccaneers with the 161st pick in the fifth round of the 2020 NFL draft.[14] In Week 5 of the 2020 season, he recorded his first four career receptions for 61 receiving yards in the 20–19 loss to the Chicago Bears.[15] In Week 6 against the Green Bay Packers, he scored his first professional receiving touchdown on a seven-yard reception from Tom Brady.[16] Overall, Johnson finished his rookie season with 12 receptions for 169 receiving yards and two receiving touchdowns in 14 games.[17] Johnson drew a critical, game-sealing pass-interference penalty on Packers cornerback Kevin King in the National Football Conference Championship game, which the Bucs won 31–26 to advance to Super Bowl LV, where they won 31–9 over the Kansas City Chiefs. Johnson earned a single target in the win.[18]
The Buccaneers waived Johnson on August 30, 2022.[19]
Houston Texans
On August 31, 2022, Johnson was claimed off waivers by the Houston Texans.[20] He was released on October 25.[21]
Tampa Bay Buccaneers (second stint)
On October 31, 2022, Johnson was signed to the Buccaneers practice squad.[22]
Las Vegas Raiders
On January 25, 2023, Johnson signed a reserve/future contract with the Las Vegas Raiders.[23] He was waived on May 15, 2023.
Los Angeles Rams
On May 30, 2023, Johnson signed with the Los Angeles Rams.[24] He was waived on August 29, 2023 and re-signed to the practice squad.[25][26] He was promoted to the active roster on January 2, 2024.[27]