Ball started his career at Bolton Wanderers. During his time at Bolton, he was loaned out to Conference North club Hyde United on a work experience loan at the start of the 2014–15 season. Following his release from Bolton in May 2015, Ball spent the following season at Northwich Victoria. He joined National League North club Stalybridge Celtic ahead of the 2016–17 season before signing for Stockport County a month later in September 2016. After two seasons at Stockport, Ball signed for Stevenage in May 2018. He spent a season at Stevenage before joining Ebbsfleet United of the National League in July 2019. He moved to Solihull Moors in October 2019.
Career
Early career
Ball began his career at hometown club Bolton Wanderers and is a product of the club's academy.[3] At the start of the 2014–15 season, he was sent on a work experience loan to Conference North club Hyde United.[3] Ball made his debut for Hyde in the club's 3–2 away loss to Bradford Park Avenue on 25 August 2014,[4] and went on to make five appearances during the one-month loan spell.[5] Ball returned to Bolton following the conclusion of the work experience loan, but did not many any first-team appearances for the club.[2] He was released by Bolton in May 2015,[6] subsequently joining Northwich Victoria for the 2015–16 season.[7]
After a full season at Northwich, Ball joined National League North club Stalybridge Celtic on a free transfer ahead of the 2016–17 season.[8] He made his debut on the opening day of the campaign, playing the whole match in a 1–0 away victory over Boston United.[8][9] During the short spell at Stalybridge, which lasted a month, Ball made six appearances, scoring his only goal for Stalybridge in the club's 3–1 home defeat to Stockport County on 9 August 2016.[8][10]
Stockport County
Having scored against Stockport County a month earlier, Ball signed for the club on 6 September 2016.[11] Ball had played under Stockport manager Jim Gannon at Northwich the previous season.[12] He made his Stockport debut a day later, in a 2–1 away defeat to Darlington, scoring the club's goal in the match.[13] In March 2017, Ball signed a new two-year contract extension with the club,[12] with Gannon stating he believes Ball has all of the attributes to become a Football League player.[12] He played regularly during the season, making 37 appearances in all competitions and scoring seven times,[11] as Stockport missed out on a place in the National League North play-offs by a point.[14]
Contracted to Stockport for the 2017–18 season, Ball continued to play regularly in the centre of midfield for the club throughout the season.[11] He scored his first goal of the season in a 6–0 victory over Southport at Edgeley Park on 5 September 2017.[11][15] He ended the season by scoring seven times in the club's final eleven fixtures.[11] This included a brace in a 4–0 win against Leamington,[16] as well as a 94th-minute winner in a 3–2 victory over Bradford Park Avenue a week later to help Stockport secure their place in the National League North play-offs courtesy of a fifth-place finish.[17][18] Ball made 48 appearances in all competitions during the season, scoring 11 goals, as Stockport were defeated at the qualifying round stage of the play-offs.[11]
Stevenage
Ball signed for League Two club Stevenage on 9 May 2018, joining for an undisclosed five-figure fee.[19] Whilst managing Nuneaton Town, Stevenage manager Dino Maamria recommended Ball to Stevenage chairman Phil Wallace in December 2017, describing him as one of the best players in non-League football.[20] Maamria subsequently made Ball his first signing for the club.[20] Ball made his Stevenage debut in the club's opening match of the 2018–19 season, scoring the first goal of the match in an eventual 2–2 draw with Tranmere Rovers at Broadhall Way.[21] Despite being a regular starter in midfield in the opening months of the season, Ball played predominantly as a substitute from October 2018 onwards.[22] He came on as an 11th-minute substitute and played as a striker in a 2–1 win over Crawley Town on 12 January 2019, scoring both of Stevenage's goals.[23][24] He was praised by Maamria for his work-rate and maturity in a position he had rarely played in.[24] Ball subsequently started the club's next two matches,[22] but once again began to make appearances from the substitute's bench, and ultimately did not play for the final three months of the season.[22] He made 21 appearances and scored four goals during the season.[22] Ball was transfer-listed by the club on 9 May 2019.[25]
Ebbsfleet United
After being transfer-listed by Stevenage, Ball signed for Ebbsfleet United of the National League on 15 July 2019.[26] He debuted for Ebbsfleet in the opening game of the 2019–20 season, playing the whole match in a 4–1 home defeat to FC Halifax Town.[27] He scored his only goal for the club in Ebbsfleet's 2–1 away victory against Boreham Wood on 29 August 2019.[27] Ball played in all 14 of Ebbsfleet's matches in the opening two months of the 2019–20 campaign, before Ebbsfleet received a transfer bid for Ball from fellow National League club Solihull Moors.[27][28]
Solihull Moors
Ball subsequently signed for Solihull Moors for an undisclosed fee on 4 October 2019.[28][29] He joined on a contract set to run until June 2021.[28] He made his debut as a second-half substitute a day after signing for the club, in the club's 1–0 defeat to Boreham Wood.[27] After scoring his first goal for the club in a 2–1 home victory against Dagenham & Redbridge on 2 November 2019,[27] Ball scored four times in Solihull's 5–1 FA Cup win at Oxford City a week later.[27] He played 28 times for Solihull throughout the remainder of the season, scoring eight goals, as the National League regular season was curtailed due to the COVID-19 pandemic in March 2020.[11][27][30] He finished the 2020–21 season as joint top goalscorer for Solihull on 11 goals,[31] making 34 appearances in all competitions.[11][32]
Rochdale
On 31 January 2022, Ball returned to the Football League to join Rochdale for an undisclosed fee on a two-and-a-half-year deal.[33][34]
Ball was initially a defender during his time at Bolton Wanderers' academy and was played in central defence on loan at Hyde United.[3][5] He moved further up the pitch to play in central midfield during his time at Northwich Victoria and has remained there since.[2][11] On signing for Stevenage, manager Dino Maamria described Ball as "big, strong, box-to-box, can cover a lot of ground and can score goals from midfield".[20]