He started his career at Cambridge United academy and joined Norwich City academy at the age of 11. Hall-Johnson was part of the FA Youth Cup winning squad of Norwich in 2013. He made his professional debut in 2014 but was released in 2016. After being released, he had spells at Maidstone United and Bishop's Stortford before securing a move to Braintree Town in October 2016. After trialling since September, Hall-Johnson signed for Grimsby Town in October 2017.
In December 2013, he signed a professional contract until the summer of 2016. He signed another one-year contract on 18 September 2015 with the option of another year.[6] He made his professional debut in Norwich's 3–1 Football League Cup victory against Crawley Town on 26 August 2014.[7] Hall-Johnson was released by Norwich in June 2016 after his contract expired.[8]
In October 2016, Hall-Johnson moved to his third club of the season, Braintree Town.[11] He was sent off for a two-footed tackle on Frankie Raymond on 2 January 2017 in a 3–0 defeat at Dagenham & Redbridge.[12] During his time at Braintree, he made 25 league appearances with 5 goals and 5 assists.[3]
On 16 October 2017, he signed for Grimsby on a one-year contract, after impressing manager Russell Slade and assistant Paul Wilkinson on his trial.[16] Hall-Johnson re-joined his former academy manager Paul Wilkinson and fellow players Sam Kelly, Ben Killip and Diallang Jaiyesimi who he played with at Norwich City.[17]
Hall-Johnson signed for National League side Chester three days later, on a three-month deal.[18] He made his debut for Chester on 21 October 2017 in a 2–1 defeat at home to Boreham Wood.[19] On 23 October 2017, he scored the second goal for Chester in a 3–2 home victory over Barrow, a volley from the edge of the box.[20] He made eleven appearances and scored one goal for Chester before the loan expired on 9 January 2018.[3]
Having returned from his loan spell at Chester, he made his debut on 3 February 2018 for Grimsby in a 1–1 draw against Cheltenham Town.[21]