*Club domestic league appearances and goals, correct as of 23:47, 26 October 2024 (UTC) ‡ National team caps and goals, correct as of 29 March 2021 (UTC)
Raised in Portmarnock in North Dublin, Williams signed for nearby League of Ireland club Drogheda United from schoolboy club Home Farm FC at the start of the 2005 season and played with the club's under 21 side for the year. After impressing for the under 21 side, Williams was offered a full-time professional contract with the club which he signed ahead of the 2006 season. Struggling to make his first team breakthrough that year, Drogheda looked to loan him out for the following year for experience.[3]
He spent the opening half of the 2008 season on loan from Drogheda United at Finn Harps following their promotion to the League of Ireland Premier Division in 2007 via the playoffs. He made 14 appearances, scoring two goals.[4] His first goal came in the opening match of the season as Harps beat fellow Premier Division newcomers Cobh Ramblers 2–1 in Finn Park.[5] He followed that up with his second in three games as Harps beat U.C.D. 1–0.[6]
Failing to score in the rest of his appearances for Harps, his loan ended in Summer 2008 as he returned to Drogheda United for the remainder of the season.[4]
Return from loans
He made his first team debut for the club on 20 July 2008, coming off the bench at halftime for Sami Ristilä in a 1–0 win over Cork City.[7] He went on to make a further 3 appearances before the end of the season.[4]
On 16 March 2011, Williams signed for MK Dons. Despite making his name as a midfielder, he primarily as a centre-half for the club due to injuries and a small squad. At the end of the 2012–13 campaign, Williams was crowned the MK Dons Player of the Year and the Players' Player of the Year.[18]
Millwall
On 27 January 2014, Williams signed for Millwall on a 2+1⁄2-year contract for an undisclosed fee.[19] During his time at Millwall he accumulated 290 appearances in all competitions, scoring 22 goals.
Portsmouth
On 25 June 2021, Williams signed for Portsmouth of League One.[20] Williams was released after one season at the club.[21]
Gillingham
On 10 June 2022, Williams signed for League Two side Gillingham on a one-year contract,[22] reuniting with his former Millwall manager Neil Harris. He made his debut for the Kent side on the opening day of the 2022–23 season in a 2–0 away defeat to AFC Wimbledon.[23] He scored his first goal for Gillingham on 5 February 2023, the only goal in a 1–0 home victory over Crawley Town.[24] On 28 April 2023 it was announced that Williams had signed a new contract with the Kent club.[25] On 3 August 2023 he was named as Gillingham club captain ahead of the 2023–24 season.[26]
On 15 May 2024, the club announced that he would be released in the summer when his contract expired.[27]
He made his senior Republic of Ireland debut at the age of 31 in a 2–0 friendly loss against France in May 2018.[29] Williams scored his first senior international goal for Ireland on 6 September 2018, after coming off the bench against Wales in the UEFA Nations League.[30] He made his third and final appearance for the national side in a 1–1 friendly draw to Poland on 11 September 2018.[31]
International goals
Scores and results list Ireland's goal tally first.