Williams began his career at
St Mirren, being first included in a matchday squad for their 0–4 home defeat to
Celtic on 5 January 2014. He was an unused substitute in this match, and ten more over the remainder of the season and the following campaign, never making a senior appearance. After being released by St Mirren, Williams trialled at
Scottish Championship club
Alloa Athletic, where on 16 July 2015 he was given a one-year contract by his former St Mirren manager
Danny Lennon. Nine days later he made his debut, playing the full 90 minutes as they won 1–0 at
Highland League team
Brora Rangers in the first round of the
Scottish Challenge Cup. On 8 August he played his first league game, a 3–1 loss away to
Queen of the South. In February 2016, he moved on loan to
Arbroath in
Scottish League Two; on 12 March he scored his first career goal to conclude a 3–0 win over
East Stirlingshire at
Gayfield Park. However, after his loan spell ended and Alloa's relegation from the Scottish Championship, Williams was released by the club. Williams last played for
Linlithgow Rose in 2016-2017. ==References==