On 6 October 2009, Hall transferred to Brighton & Hove Albion after a successful trial period from non-League side Lewes.[3] Hall had previously been involved with Brighton's centre of excellence but missed out on a youth scholarship at 16 and was released.[4]
On 26 December 2011, Hall was named as a substitute for Brighton's 3–0 defeat away to Reading, and was subsequently named once again as a substitute during the 2–0 defeat to Coventry City five days later. Hall made his first senior appearance for Brighton during the 3–0 victory over Southampton at the Falmer Stadium on 2 January 2012, coming on as a 53rd-minute substitute replacing Mauricio Taricco.[5] Hall made his first start for the first team against Wrexham on 7 January 2012 in the FA Cup third round.[6]
Tottenham Hotspur
During May 2012, Hall was offered a new three-year contract amid interest from Premier League side Tottenham Hotspur.[7] He rejected the offer, and signed for Tottenham Hotspur.[8] The defender made his debut during a pre-season friendly against Kingstonian.[9]
Hall signed for Football League Championship club Birmingham City on loan for the 2014–15 season.[11] He made his debut in the starting eleven for the opening-day defeat at Middlesbrough,[12] and formed a partnership with David Edgar at the start of the season.[13] However, the return of captain Paul Robinson to the starting eleven and the arrival of Michael Morrison pushed Hall down the pecking order, he played his last game for the club on 25 October, and his loan was terminated at the beginning of the January 2015 transfer window.[12][14]
He spent the second half of the season at Blackpool, also of the Championship.[12]
Queens Park Rangers
On 7 August 2015, Hall signed for Championship club Queens Park Rangers on a two-year deal after a successful trial at the club.[15] He made his competitive QPR debut five days later in a 3–0 win against Yeovil Town in the first round of the 2015–16 Football League Cup.[16] Hall was a regular in QPR's defence throughout the season, and his performances were rewarded with the Supporters' Player of the Year award for 2015–16.[17]
Hall left QPR on 19 June 2020 after failing to agree a new contract.[18]
Middlesbrough
On 31 July 2020, Hall signed for Middlesbrough on a free transfer.[19] He scored his first goal for Middlesbrough in a 2–1 win at Coventry City on 2 March 2021.[20] In July 2022 he was loaned to Rotherham United for the 2022–23 season,[21] however he suffered a serious injury in February 2023, which effectively ended his season.[22] Hall was released by Middlesbrough at the end of the 2022–23 season.[23]
Rotherham United
On 1 July 2023, Hall returned to Rotherham United on a permanent basis.[24]
On 7 May 2024, after the club were relegated, Rotherham announced the player would be released in the summer after his contract expired.[25]