Hall began his career with West Ham United in 2001 and signed his first professional contract in October 2010. Hall was given squad number 46 for the 2011–12 season and was an unused substitute for West Ham's League Cup defeat by Aldershot Town in August 2011.
In September he signed a one-month loan deal with Oxford United, later extended by a further month. He made his debut on 13 September against Dagenham & Redbridge, scoring the only goal in a 1–0 victory, the first of six goals in his ten appearances in all competitions. West Ham recalled Hall on 31 October as cover for injured players. He did not, however, feature for them and returned to Oxford on a one-month loan on 16 November. Hall played four games for Oxford during his second loan spell, without scoring, before being recalled by West Ham on 21 December. He made his West Ham debut on 31 December in a 2–1 away defeat to Derby County, coming on in the 79th minute as a substitute for Papa Bouba Diop.
In March 2012 Hall signed on loan for League One club Milton Keynes Dons until the end of the 2011–12 season. He was West Ham's Academy Player of the Season for 2011–12.
Hall played once for West Ham in the Premier League and twice in the League Cup in the 2012–13 season before joining Championship club Birmingham City on loan in November.
Hall made his Birmingham debut away at Derby County. After an hour, he made a pacy run down the centre and was fouled as he entered the penalty area. Marlon King converted the penalty for Birmingham's equaliser, but they lost 3–2. He provided the assists for both of Curtis Davies's goals in the 2–1 defeat of Barnsley in December. West Ham declined to allow Hall to play for Birmingham in the FA Cup, but were prepared to extend his loan for a further month, to be reviewed on a monthly basis. He made seven assists from thirteen Championship appearances before returning to West Ham for assessment of a groin problem, and underwent surgery on a hernia a few days before his loan formally ended on 16 March.
On 28 March 2013, he was loaned out by West Ham again, this time for a month initially to link up with Bolton Wanderers. He made only one appearance, starting against Blackpool in a 2–2 draw on the last day of the season. He started the game but was replaced by substitute Marvin Sordell after 37 minutes when Bolton were 2–0 down.
Following his contract at West Ham expiring, Hall signed for Bolton permanently on 1 July 2013, signing a three-year contract. In August 2013, the Professional Football Compensation Committee set Hall's transfer fee as an initial £450,000 with additional fees payable upon certain conditions occurring. West Ham would also be due 20% of any profit made by Bolton should Hall be transferred. He made his second début on 6 August as he started in Bolton's 3–1 League Cup away win against Shrewsbury Town. He scored the first goal of the game, his first for Bolton.
At the end of the 2015–16 season, the club confirmed that he would be leaving when his contract expired at the end of June, following a knee injury sustained while on loan at MK Dons.
On 26 March 2015, Hall re-joined Milton Keynes Dons on-loan until the end of the 2014–15 season. On 18 April 2015, Hall scored his first goals for Milton Keynes Dons with a hat-trick in a 6–1 home defeat of Leyton Orient. He dedicated the goals to his friend and former teammate at West Ham United, Dylan Tombides, who died exactly one year previous from cancer.
On 28 July 2015, Hall signed for a second consecutive loan period until the end of the 2015–16 season. On 5 April 2016 Hall suffered a ruptured anterior cruciate ligament in his left knee during training, and returned to Bolton Wanderers for treatment.
On 19 July 2016, Oxford United announced that they had signed the former loanee on a two-year permanent deal, despite his ongoing injury. He made his first appearance as a substitute in a Football League Trophy match against Chelsea U23 on 8 November, and his first league appearance, again as a substitute, against Shrewsbury Town four days later. His first starting appearance came in a League One fixture against Coventry City on 19 November. In his first season back at the club, he scored 6 goals in 26 League appearances (5 as substitute) and appeared at Wembley in the 2017 EFL Trophy Final.
Hall has represented England at under-16, under-17, under-18 and under-19 levels and was a member of the team that won the 2010 UEFA European Under-17 Football Championship in Liechtenstein. His under-19 debut came on 10 November 2011 when he appeared as a substitute for Harry Kane and scored the only goal in a victory against Denmark under-19 at the Amex Stadium.
Hall attended The Grange School, Aylesbury.As of match played 2 September 2017.
Milton Keynes DonsFootball League One runner-up: 2014–15
Oxford UnitedFootball League Trophy runner-up: 2016–17
England under-17UEFA European Under-17 Championship: 2010