Born in Birkenhead, Williams came through the youth ranks at League Two club Chester City and a transfer embargo saw him and other youngsters promoted to the club's first team during the 2008–09 season at age 17.[5] He was an unused substitute in seven matches between September and December 2008 and made his senior debut for the club in a 7–0 Cheshire Senior Cup semi-final defeat to Crewe Alexandra on 20 January 2009,[6][7][8] but he tore ankle ligaments on the stroke of half time and failed to recover before the Seals' relegation at the end of the season.[9]
Non-league football
Williams signed for Northern Premier League First Division North club Colwyn Bay in late 2009.[10] He helped the team achieve promotion to the Premier Division and moved to sign for Cymru Alliance club Llandudno on loan during the 2010–11 season,[11][12] where his performances won him the club's Player of the Year award and a place in the league's Team of the Year.[10] Williams transferred to fellow Cymru Alliance club Rhyl in July 2011 and was again voted into the Cymru Alliance Team of the Year at the end of the 2011–12 season.[10] He departed Rhyl midway through the 2012–13 season.[13]
Morecambe
Williams began training with League Two club Morecambe in July 2012, but was not offered a contract due to financial constraints.[14] After the departure of Joe Mwasile on loan, funds were made available for Williams to be offered a short-term contract with the Shrimps in October 2012.[citation needed] International clearance problems held up the signing and he finally joined the club on 10 January 2013.[15] Williams made his Football League debut in a match versus Plymouth Argyle five days later,[16] coming on as a 68th-minute substitute for Gary McDonald.[17] He crowned his day with a long-range goal in the 80th minute, though the Shrimps would lose 2–1.[18] He scored his second goal in three games versus Dagenham & Redbridge two weeks later, this time scoring a late winner in a 2–1 victory.[17] A first start versus York City on 2 February and Man of the Match performances later in the month versus Exeter City and Aldershot Town saw Williams sign a new contract running until the end of the 2013–14 season.[19] Williams made 16 appearances and scored two goals during the second half of the 2012–13 season.[17]
Williams was a regular starter during the 2013–14 season and got his campaign off to a flyer, netting long range goals with a free kick in a League Cup first round victory over Wolverhampton Wanderers and a 25-yard strike in a league draw with Torquay United.[20] His performances saw him sign a new one-year contract extension in February 2014.[21] Williams made 29 appearances and scored four goals during his first full season of league football and won Morecambe's Goal of the Season award.[22] Williams began the 2014–15 season alternating between a starting berth and a place on the bench and missed the final two months of the season after undergoing surgery on a hernia problem.[23][24] He finished the season with 16 appearances and no goals.[25] Williams was released in May 2015 after making 61 appearances and scoring five goals during his two-and-a-half year spell at the Globe Arena.[26][27]
Brentford
On 11 June 2015, Williams signed a one-year deal with Championship club Brentford, with the option for a further year.[28] His only appearance for the Bees came with a start in a 4–0 League Cup first round defeat to Oxford United on 11 August.[29] On 1 February 2016 and having failed to win a call into the squad in over four months,[30] Williams' contract was cancelled by mutual consent.[31]Get West London later reported that Williams "was a set-piece expert, but was never going to get in the first team and (Brentford) turned him into a set-pieces coach".[32]
On 5 February 2018, it was announced that Williams had moved to Brazil to join Campeonato Brasileiro Série B club Paysandu on a three-month contract.[38] He was unable to be registered until 23 March and made his only appearance for the club as a 75th-minute substitute for Pedro Carmona in a 1–1 draw with São Bento on 19 May.[36][39][40] In mid-June 2018, it was announced that Williams' contract had been terminated early due to personal problems.[41]
Tranmere Rovers
On 13 September 2018, Williams joined League Two club Tranmere Rovers on a short-term contract.[42] He made just two EFL Trophy appearances before departing Prenton Park on 14 January 2019.[43]
On 26 August 2020, Williams joined Swedish Superettan side AFC Eskilstuna.[45] His lone goal for the club came on 16 October 2020 in a 3-2 loss against Akropolis IF.[46] In March 2022, he rejoined the club on a deal until the end of the year.[47]
Detroit City
Williams returned to the United States in March 2024, signing with USL Championship side Detroit City ahead of their 2024 season.[48]
Futsal
Williams played futsal for Tranmere Victoria and Liverpool and was named in the England squad for the 2010 FA Futsal Four Nations Tournament.[49][50] He made his debut in the final of the tournament, a 3–2 defeat to Turkey.[9]
Personal life
After dropping out of professional football in 2009, Williams studied to become a personal trainer, eventually launching Roqstar Fitness, based in New Brighton.[9]