Johnson played at Houston from 2014 to 2018. He spent his first two years as a wide receiver before switching to cornerback prior to his junior year in 2017.[1][2] During his two years as a receiver, he had 21 receptions for 208 yards.[3] In his two years as a cornerback, he had 115 tackles and four interceptions.[4][5]
Johnson was drafted by the Oakland Raiders in the fourth round (129th overall) of the 2019 NFL draft.[9] He was placed on injured reserve on September 2, 2019.[10] He was designated for return and began practicing again on October 14.[11] He was activated on November 4.[12]
On November 8, 2020, Johnson forced two incomplete passes on the last two plays of the game to seal the team's 31–26 win over the Los Angeles Chargers.[13] In Week 10 against the Denver Broncos, Johnson was ejected from the game after punching Broncos' wide receiver Tim Patrick after Patrick punched Johnson's teammate Johnathan Abram.[14] He was placed on the reserve/COVID-19 list by the team on November 18,[15] and activated three days later.[16] He was placed back on the COVID-19 list on December 19, 2020,[17] and activated on December 23.[18]
On August 31, 2021, Johnson was waived by the Raiders.[19]
On December 14, 2021, Johnson was signed to the Pittsburgh Steelers practice squad.[21] He was released on December 20.
Arizona Cardinals
On December 29, 2021, Johnson was signed to the Arizona Cardinals practice squad. He was released on January 4, 2022.[22]
Pittsburgh Steelers (second stint)
On January 19, 2022, Johnson signed a reserve/future contract with the Steelers.[23] He was waived/injured on May 10, 2022, and placed on injured reserve.[24] He was released with an injury settlement on June 10, 2022.
DC Defenders
On April 5, 2023, Johnson signed with the DC Defenders of the XFL.[25] He was placed on the team's reserve list on April 25, and activated on May 16.[25] He was released on March 20, 2025,[26] but was re-signed on April 29.[27]