Born in Jamaica, Johnson played for Crystal Palace as a schoolboy before moving on to Aston Villa's academy. Johnson's potential was recognised following the 2010–11 season. Extra responsibility was placed on Johnson when academy coach Tony McAndrew handed him the captain's armband. As well as leading Villa to the Barclays Premier Academy League Group B title, he was an inspiration during the FA Youth Cup campaign. A left-foot strike from the edge of the box in round four against Peterborough United crowned a true captain's performance and ignited a cup run that would see the young lions reach the semi-finals. His performances for the academy and reserve teams had already caught the eye of manager at the time Gerard Houllier. The Frenchman called up Johnson to Aston Villa's first team for the first time, where he was an unused substitute in Villa's 2–1 League Cup win over Burnley. In January 2011, the midfielder signed his first professional contract at Villa Park. Johnson had another season of great progress in 2011–12, featuring in all but one of the title-winning reserve team's fixtures as well as making the first team bench for six Premier League games. In the reserve ranks, Johnson once again demonstrated his ability to supply goals from the central ground. He found the net five times, including a wonder strike in a 3–1 defeat against a Manchester United side featuring the likes of Phil Jones, Chris Smalling and Tom Cleverley. That scoring knack was also replicated on the European stage during Villa's run to the quarter-finals of the NextGen Series. Johnson was the only player to feature in all seven of the club's NextGen games and he managed three goals in the process. Those strikes came in home and away wins against Fernabaçhe and in a 3–2 defeat by Rosenborg. In March 2012, he extended his contract to summer 2013 but he has still yet to make his official debut for Villa. On 13 June 2013, Johnson signed a new two-year deal keeping him at the club until 2015.
Loan moves
Johnson has made series of short loan moves to League One sides over the past three seasons. On 23 October 2012, Johnson joined Football League One side Yeovil Town on a month-long youth loan deal, and made his Football League debut as a substitute that evening in Yeovil's 3–1 victory over Shrewsbury Town. Johnson joined Chesterfield on a three-month loan in August 2014 and made his debut in a 2–1 away win over Port Vale on 30 August. Johnson played 13 times for Chesterfield, becoming a first team regular. On 10 November 2014 Johnson joined another League One side, Oldham, on a two-month deal until 5 January 2015.
On 23 January 2015, Johnson joined Preston North End for an undisclosed fee, believed to be £50,000, on a 2½-year deal. Johnson started life off well at Preston scoring 8 goals in 18 appearances. Johnson and his teammates won promotion to the Championship on 24 May 2015, following a 4–0 win over Swindon Town in the play-off final at Wembley.