After spending time with the Tottenham Hotspur academy and playing non-league football for Tower Hamlets,[4] Williams signed for Crystal Palace in January 2016.[5][6] He had been on trial with the club in December 2015.[7][8] Williams was released by Palace at the end of the 2016–17 season; in July 2017 he signed for Watford.[9] He moved on loan to Wycombe Wanderers in January 2018.[10] He made his professional debut on 2 April 2018, in a league game against Grimsby Town,[11] and was praised by Wycombe manager Gareth Ainsworth for his performance.[12] He returned to Wycombe in July 2018 for a second loan spell,[13] which ended on 1 January 2019.[14]
Exeter City
He moved to Exeter City on a free transfer on 18 January 2019.[15][16] He scored his first goal for Exeter in the 4–0 derby victory against local rivals Plymouth Argyle.[17] Williams ended the 2019–20 season with 5 goals and 14 assists, and was awarded Player of the Season and Goal of the Season by the club.[18]
He was offered a new contract by Exeter on 12 May 2021, with the club saying they expected him to leave.[19][20]
Hull City
On 17 June 2021 it was announced that he would sign for Hull City on a free transfer on 1 July 2021.[21][22] He made his debut for Hull on 14 August 2021 when he came on as a 73rd minute substitute for Richie Smallwood in the 3–0 loss to Queens Park Rangers.[23]
Bolton Wanderers
On 5 January 2023, Williams joined Bolton Wanderers for an undisclosed fee, signing a two-and-a-half-year deal with the club.[24][25] On 14 February, he scored his first goal for the club in a 5–0 home win against MK Dons.[26] On 2 April, he was an unused substitute in the 2023 EFL Trophy Final. Bolton went on to win 4–0 against Plymouth Argyle to win the trophy.[27]
Career statistics
As of match played 29 December 2024
Appearances and goals by club, season and competition