Williams was born on 31 October 1994 in Wigan, Greater Manchester, and began playing junior rugby league at local amateur teams Ince Rose Bridge and Wigan St Patricks. He joined Wigan Warriors scholarship programme and was signed to their Academy team in 2011 on a four-year contract. Williams made his senior début in the fourth round of the Challenge Cup in April 2013, scoring a try in a 60–10 victory over Championship club the Leigh Centurions. He made his first Super League appearance a month later against London Broncos, scoring another try, and also played against Widnes Vikings. He returned to the Academy side later in the season, helping Wigan win the under-19 Grand Final with two tries in a 34–10 victory against Leeds Rhinos. Williams became a regular in the first team during the 2014 season, and signed a new four-year contract in May 2014. He made 23 appearances during the season, scoring seven tries, including his first senior hat-trick against Hull F.C. in July 2014. He appeared for Wigan as a substitute in the 2014 Super League Grand Final defeat by St. Helens. Following the departure of Blake Green, Williams became the first-choice for Wigan and was assigned the number 6 jersey before the start of the 2015 season. He played in the World Club Series against Brisbane Broncos. Williams made 33 appearances and was a near ever-present throughout the season, missing only one game early in the year against Huddersfield Giants after suffering an injury during the warm-up. Williams was awarded the Super League Young Player of the Year award at the Man of Steel awards on 5 October 2015. Williams also played in the 2015 Grand Final, but was again on the losing side as Wigan were defeated 20–22 against the Leeds Rhinos at Old Trafford. He was awarded the Super League Young Player of the Year award in 2015, and helped the team win the 2016 Super League Grand Final, and the 2017 World Club Challenge. In 2016, Williams again featured in the World Club Series against Brisbane Broncos, scoring one try in a heavy 12–42 defeat. Williams also won his first club honours, with Wigan defeating the Warrington Wolves in the 2016 Grand Final at Old Trafford. On 19 February 2017, Williams was the stand-out performer in the 2017 World Club Challenge against National Rugby League Premiers Cronulla-Sutherland Sharks, helping Wigan to a 22–6 win. In April 2017, he signed a new four-year contract with Wigan. On 26 August 2017, Williams played in his first Challenge Cup final, with Wigan losing 14–18 to Hull F.C. at Wembley Stadium. He played in the 2018 Super League Grand Final victory over the Warrington Wolves at Old Trafford. On 9 July 2019 it was announced that Williams would leave Wigan to join the Canberra Raiders for the 2020 National Rugby League season.
International career
Williams made his international début for England in 2015, and represented England at the 2017 World Cup. After an outstanding Super League 2015 season, Williams was selected in the England team for their test series against New Zealand. Williams made his début for England in a test match, before the series, against France which saw Williams score a try in England's rout of their opponents. In October 2016, Williams was selected in the England squad for the 2016 Four Nations. In October 2017 he was selected in the England squad for the 2017 Rugby League World Cup, making two appearances for England in the group stages. He was selected in England's 9s squad for the 2019 Rugby League World Cup 9s. He was selected in squad for the 2019 Great Britain Lions tour of the Southern Hemisphere.