After a season with Greenock Morton, he signed for Falkirk in 2019, spending time on loan at Stranraer before joining Dumbarton in July 2020.
[4] At Celtic, Johnstone scored the opening goal in the under-19s first match in the 2012–13 NextGen Series at home to Sporting Lisbon,[5] whilst he also contributed to Celtic winning the Scottish Premier under-20 League and scored with his first touch of the ball to confirm their Scottish Youth Cup 3–1 win over Dunfermline Athletic's under-20s team.
[11] Johnstone started his first professional match on 19 August 2014, replacing Wes Thomas in the 81st minute of a 2–2 draw versus Ipswich Town.
[12] Johnstone joined Conference Premier club Macclesfield Town on 27 November 2014, on a one-month loan spell, having scored 4 goals in 7 development squad matches.
[19] A week later, Johnstone scored his first Football League goal in the 24th minute on his third appearance for the club; Cheltenham lost the match 2–1 to Bury.
[23] In his third appearance, after Carlisle United took an early lead, he needed lengthy treatment following a clash of heads but was able to return to the field of play, only to then score an equaliser in the eighth minute of stoppage time after a goalmouth scramble.
[24] Johnstone was an unused substitute in Burton's last match of the season, which confirmed the club as League Two championship winners.
[27] Johnstone helped Morton to a fifth-place finish in the Scottish Championship, scoring 17 goals in all competitions and providing six assists.
[28] League Two club Colchester United signed Johnstone on a two-year contract for an undisclosed fee on 28 June 2016.
[31] He was ruled out for the remainder of the season having made 32 appearances and scoring two goals after tearing knee cartilage during Colchester's 2–1 defeat at Accrington Stanley on 18 February.
[39] After leaving the Bairns in the summer of 2020, he joined fellow Scottish League One side Dumbarton in July 2020 - teaming up with manager at Morton, Jim Duffy.