The Birmingham born winger began his career at Solihull Moors in 2010 at the age of 20 where he also had spells at amateur clubs like Coleshill Town, and Romulus as a loanee on both occasions.
Despite interest from Burnley and Crewe Alexander, he opted to join National League side Kidderminster Harriers in 2012. He went on to play 114 games and scored 17 goals for the Harriers.
On 2 February 2015 he joined Scottish Premiership side Motherwell FC and extended his contract for three more years in June, the same year.
Johnson moved back to England on the 2016 summer transfer deadline day, joining Oxford United for a fee in the region of £650,000. Before his move to Oxford United, he had played 53 games, scored 6 goals and provided 13 assists.
Primarily a left-winger, Johnson played 41 games for Oxford United between 2016 and 2017, before moving to Middlesbrough FC in August 2017 on a three-year deal for a fee around £2.7million.
Johnson made his debut for Boro in a 3-0 win away to Bolton, however, spent the 2018/2019 season on loan with Sheffield United, making 12 league appearances for the eventual runners up in the SkyBet Championship, thereby gaining promotion to the Premier League.
May 2019 - June 2020
August 2018 - May 2019
August 2017 - August 2018
January 2018 - January 2018
August 2016 - August 2017
February 2015 - August 2016
July 2012 - February 2015