Crystal Palace , 2012 Williams made his breakthrough into the
Crystal Palace first team at the beginning of the 2011–12 season, after much hype surrounding his performances for the academy and reserve side the previous term. He made his debut on 16 August 2011, coming on as a second-half substitute at home to
Coventry City. One week later, Williams made his full first-team debut in the opening game of the 2011–12 League Cup, at home to
Crawley Town. He played 85 minutes, making his first assist and received a standing ovation from the home crowd. He scored his first professional goal for Crystal Palace on 13 September 2011, in a match against
Wigan Athletic in the League Cup. Williams suffered a broken fibula in his right leg on 15 November 2011, whilst on Under-21 international duty with Wales. After missing four months with the injury, he returned to the starting line-up on 19 March 2012 at home to
Hull City, playing 71 minutes. Williams made only a handful of appearances after his return from injury, with the coaching staff giving him time to rest and regain full fitness in time for the start of the next season. He ended the season having played in 18 first-team games. On 10 May, Williams signed a five-year contract to keep him at the club until 2017. Williams played four pre-season games in preparation for the
2012–13 season having recovered from his broken leg. In the last game against
Reading, he was taken off with a calf injury, forcing him to miss the first four games of the season. After he recovered from the injury he started against
Preston North End in a
League Cup tie, and then came on as a substitute on 1 September against
Sheffield Wednesday, Palace's first win of the season. Williams' efforts after making a comeback from the injury were rewarded when he received Crystal Palace's Young Player of the Year award for the season. During the
2013–14 season, Palace's first season back in the Premier League, Williams made nine league appearances, before going on loan at the start of 2014. Williams made his only appearance of the
2015–16 Premier League season against Chelsea, coming on as a substitute for
Lee Chung-yong. He signed a contract extension with Crystal Palace in June 2017, keeping him at the club until 2019.
Ipswich Town (loans) On 27 February 2014, it was confirmed by Crystal Palace chairman, Steve Parish, that Williams would be loaned to
Ipswich Town initially for one month due to not being involved in the first team at Palace. Williams returned to Ipswich on loan from 29 September 2014. Having suffered a groin injury in early November, Williams made only five appearances for Ipswich, scoring one goal, before his return to Palace at the beginning of January 2015 once the loan spell ended. On the emergency loan deadline day in March 2015, Williams re-signed for a third spell at the Suffolk side (along with
Zeki Fryers) until the end of the season. However, his groin injury again caused him to miss most of the loan, making just two appearances during this spell with the club.
Nottingham Forest (loan) On 10 September 2015, Williams joined
Nottingham Forest until 16 January 2016, but was recalled earlier on account of squad injuries.
Milton Keynes Dons (loan) On 22 January 2016, Williams joined
Milton Keynes Dons on a 93-day emergency loan from Crystal Palace.
Return to Ipswich Town (loan) Williams rejoined Ipswich Town for a fourth loan spell on 31 August 2016, this time until the end of the 2016–17 season, making eight appearances.
Sunderland (loan) On 31 August 2017, it was announced that Williams had signed on loan for Championship club Sunderland until the end of the 2017–18 season. He scored his first goal for Sunderland in a 3–3 draw with
Middlesbrough on 24 February 2018. While at Sunderland he was filmed and interviewed for the documentary series ''
Sunderland 'Til I Die'', where it shows him recovering from injury, training and speaking to a sports psychologist about his confidence.
Charlton Athletic On 4 January 2019, Williams joined
Charlton Athletic on a contract until the end of the season. This ended his 17-year association with Crystal Palace. He made 16 appearances for the club for the rest of the season, helping the club to achieve promotion to the
Championship, defeating former loan club Sunderland in the play-off final. Despite this he was released by Charlton at the end of the 2018–19 season. However, on 18 July 2019, Williams rejoined the club on a one-year deal, with the option of an additional 12 months. In October 2019 he underwent knee surgery. He scored his first goal for Charlton in a 2–0 win over
Portsmouth on 31 October 2020.
Cardiff City On 1 February 2021, Williams joined
Cardiff City for an undisclosed fee. This reunited him with former manager Mick McCarthy. Williams made his Cardiff debut as a second-half substitute in a 4–0 victory over
Derby County on 2 March 2021.
Swindon Town Williams joined
Swindon Town on 13 August 2021 on a free transfer signing a two-year contract. He was released by Swindon at the end of the 2022–23 season. This came after a season in which, Williams was the club's top scorer and also nominated for their Player of the Season award. ==International career==