Johnson played four years (2014–2017) at South Florida, where he rushed 421 times for 1,796 yards and 16 touchdowns.
[3] He finished as USF's career leader in all-purpose yards (4,186), receptions by a running back (73), and receiving yards by a running back (909).[4] He also excelled at returning kicks. Johnson spent three of his four years behind Marlon Mack.[5] Johnson saw limited playing time as a true freshman, then earned a bigger role as a sophomore, scoring five touchdowns on 653 yards from scrimmage and averaging nearly 27 yards per kickoff return. Johnson earned second-team American Athletic Conference honors as a returner in 2016, averaging 28.9 yards per kickoff return and 11.8 yards per punt return, including one score. Johnson's return responsibilities decreased in 2018, playing a bigger role in the Bulls' run-oriented offense, as he rushed for a career high 796 yards and added nine offensive scores.[6]
Johnson signed with the Orlando Apollos of the Alliance of American Football for its inaugural 2019 season.[10] In eight games with the Apollos, he rushed for 372 yards and added 22 receptions for 220 yards.[11]
Cleveland Browns
After the AAF ceased operations in April 2019, Johnson signed with the Cleveland Browns on May 16, 2019.[12] After an impressive training camp, Johnson made the Browns' initial 53-man roster for the 2019 season.[13] Johnson showed off his versatility during the preseason, leading the Browns with 86 rushing yards on 20 carries. He also added seven catches for 76 yards and a touchdown, while also proving value in the return game. The 5-foot-10, 208-pounder returned six kickoffs for 127 yards and 10 punts for 63 yards.[14] He made his regular season debut with one carry for 13 yards in the Browns' 2019 season-opening loss to the Tennessee Titans.[15] He finished the 2019 season with four carries for 21 rushing yards and six receptions for 71 receiving yards.[16]
In Week 4 of the 2020 season, he had 13 carries for 95 rushing yards in a 49–38 victory over the Dallas Cowboys.[17]
On October 21, 2021, he made his first career start against the Denver Broncos, as Nick Chubb and Kareem Hunt were both ruled out due to injury. Johnson ran for 146 yards on 22 carries and one touchdown, and was named Player of the Game[18][19] and FedEx Ground Player of the Week.[20]
On June 4, 2022, Johnson re-signed with Cleveland on a one-year, $2.43 million contract.[21]