Williams began his career with Stirling Albion, where he exploded onto the scene as a teenager, scoring 21 times in 61 appearances, and being linked to moves with big English clubs, such as Spurs and Charlton. Williams headed to Greenock Morton in 2002 for £50,000. His time at Morton, and his subsequent career prospects, were marred by an unproven betting scandal after the club lost a 14-point lead at the top of the Second Division to finish the season in fourth position. Williams later claimed that this rumour had a severe effect on his career, as clubs were unwilling to consider signing him despite his track record. After a short loan spell with Queen of the South, Williams joined Clyde in 2005. He made an instant impact, scoring after three minutes of his début against Brechin City in the Scottish Challenge Cup. Williams finished as Clyde's top scorer that season, scoring 13 league goals, and played in a famous Scottish Cup victory over Celtic. Williams moved to Australia in 2006, and joined Armadale. This only lasted a few weeks, and he later returned to Scotland to join Ross County. He only played a handful of games for County, as injury disrupted his time there. Williams then joined up with old team Clyde in January 2007, when he was re-signed after playing as a trialist in a series of matches. His contract with Clyde expired in May 2007. It was not renewed, and he subsequently left the club. He joined Ayr United in July 2007 and proved a hit with the Somerset Park faithful, scoring plenty goals for the club, including two tremendous strikes away to Raith Rovers in the 2007–08 season. In the 2008-09 Scottish Cup, he scored a last minute equalising goal against Ayrshire derby rivals Kilmarnock to earn a replay and a much needed cash boost for the club. On 8 June 2009, his contract with Ayr was terminated by mutual consent, and he subsequently signed for Dundalk in the League of Ireland, where he scored on his début. Williams signed for St. Patrick's Athletic in January 2010. Williams scored on his St.Pat's debut vs Wexford Youths in a pre-season friendly, the Saints won 3-0. In late June 2010, his club contract was terminated by mutual consent, and on 22 July he joined Stenhousemuir on a one-year deal. He was released at the end of the 2010-11 season along with 11 others. In January 2013, Williams and Kristopher O'Malley pleaded guilty to charges of supplying designer drugsmethylone and naphyrone. The lawyer representing Williams said that he had become involved in this activity because of financial difficulties suffered due to a gambling addiction. Williams was jailed for 32 months. Williams joined Junior side Luncarty in 2013.