Halls began his career with Arsenal making three appearances in the League Cup for the "Gunners" before spending time out on loan at Colchester United, Belgian club Beveren and Stoke City.
He left for Reading in January after rejecting a new contract with Stoke but he struggled to force his way into a Reading side who were well on their way to gaining promotion to the Premier League and despite spending three season at the Madjeski Stadium Halls managed just eight appearances and spent time on loan at Preston North End, Crystal Palace and Sheffield United.
[2] However, the young defender found first-team football at Highbury hard to come by, making only a few League Cup appearances for the club.
[3] The first of these League Cup appearances was as a substitute against Manchester United in November 2001, a game in which Halls was dismissed for two bookable offences.
[4] The player spent the entire 2002–03 season playing for KSK Beveren in Belgian First Division along with fellow Arsenal youngsters Graham Stack, Steve Sidwell and Liam Chilvers.
[6] After impressing manager Tony Pulis during his loan spell Halls joined Stoke City on a permanent basis in December 2003 and spent a little over two years at the Britannia Stadium before his departure in January 2006.
[8] Halls' contract was due to expire in the summer of 2006 but the player had expressed a desire to seek pastures new,[9] provoking a number of clubs to show an interest in capturing his signature.
[10] Halls made his Reading debut in the fourth round FA Cup tie versus Birmingham City on 28 January 2006.
[11] He had to bide his time until making his league bow in April 2006, against his former club, Stoke, he also scored in this game, helping Reading to a 3–1 victory.
[3] Halls was loaned out to Championship sides Preston North End, Crystal Palace, and Sheffield United making a handful of appearances for each.
[19] Halls joined up again with Gary Waddock at Wycombe signing a one-year contract in June 2011 on a free transfer from Aldershot.