Johnson attended and played college football at the University of Texas.[2] He started in 18 of 42 total games played during his time at UT. During Spring 2014, Johnson was a member of the Big 12 Commissioner's Honor Roll. While at UT, Johnson was a physical culture and sports major with a career interest in either physical therapyorsports medicine.[3]
All values from Texas Pro Day on March 23, 2016.[4]
Philadelphia Eagles
Johnson signed with the Philadelphia Eagles as an undrafted free agent on May 5, 2016.[5] He suffered a quadriceps injury early in training camp that caused him to miss most of the practices.[6] He was waived during final roster cuts on September 3, 2016, but was re-signed to the team's practice squad the next day.[7][8] He was released by the Eagles on September 13, but was later re-signed back to their practice squad on December 2. He signed a reserve/future contract with the Eagles on January 2, 2017.[9]
After impressing coaches during training camp in 2017, Johnson made the 53-man roster on September 2, 2017.[10] In Week 5, against the Arizona Cardinals, he recorded his first career catch, a six-yard reception.[11] Johnson was a member of the Eagles Super Bowl LII Championship team after defeating the New England Patriots 41–33.[12]
Seattle Seahawks
On March 7, 2018, Johnson and a 2018 fifth-round draft pick were traded to the Seattle Seahawks in exchange for Michael Bennett and a seventh-round draft pick.[13] The trade became official on March 14, 2018, at the start of the new league year.[14]
Indianapolis Colts
On September 1, 2018, Johnson was traded to the Indianapolis Colts for tight end Darrell Daniels.[15] In Week 6, against the New York Jets, he scored his first professional touchdown.[16] He was placed on injured reserve on October 16, 2018, after suffering an ankle injury in Week 6.[17]
Johnson was waived/injured during final roster cuts on August 31, 2019,[18] and reverted to the team's injured reserve list the next day. He was waived from injured reserve with an injury settlement on September 9. On October 1, 2019, Johnson was re-signed to Colts' practice squad.[19] He was promoted to the active roster on November 9.[20]
In Week 14 against the Tampa Bay Buccaneers, Johnson caught three passes for 105 yards, including a 46-yard touchdown, in the 38–35 loss.[21]
On April 22, 2020, Johnson was re-signed to a one-year contract.[22] He was waived on September 5, 2020.[23] On September 23, 2020, Johnson was signed to the practice squad.[24] He was elevated to the active roster on October 3 and 10 for the team's weeks 4 and 5 games against the Chicago Bears and Cleveland Browns, and reverted to the practice squad following each game[25][26] He was promoted to the active roster on October 17.[27] In Week 6 against the Cincinnati Bengals, he recorded a career-high 108 receiving yards in the 31–27 victory.[28] On January 2, 2021, Johnson was waived by the Colts.[29]
Tennessee Titans
On January 6, 2021, Johnson signed to the Tennessee Titans' practice squad.[30] His practice squad contract with the team expired after the season on January 18, 2021.[31] He re-signed with the Titans on March 9, 2021.[32]