Clubcarrière
Roberts komt uit de jeugdacademie van Fulham. Op 15 maart 2014 zat hij voor het eerst in de selectie van het eerste team, voor een competitiewedstrijd tegen Newcastle United. Hij debuteerde één week later in de Premier League tegen Manchester City. Hij mocht na 55 minuten invallen voor Alexander Kačaniklić. Manchester City won de wedstrijd met forfaitcijfers, na doelpunten van Yaya Touré, Fernandinho en Martín Demichelis. Roberts speelde dat jaar twee competitiewedstrijden. Hier kwamen er het volgende seizoen zeventien bij, dan inmiddels in de Championship.
Roberts verruilde in juli 2015 Fulham voor Manchester City, de nummer twee van de Premier League in het voorgaande seizoen. Dat betaalde circa € 7 miljoen voor hem en stelde nog tot € 8,4 miljoen extra in het vooruitzicht aan eventuele bonussen.
Manchester City verhuurde hem in februari 2016 voor anderhalf jaar en in augustus 2017 voor nog een seizoen aan Celtic. Er zouden nog diverse uitleenbeurten voor Roberts volgen, onder meer naar Girona, Middlesbrough en Troyes. In 2022 maakte hij de overstap naar Sunderland, waar hij aanvankelijk een contract voor zes maanden tekende. Op 12 maart maakte hij zijn eerste doelpunt voor de club in de wedstrijd tegen Crewe Alexandra. Roberts maakte vervolgens op 9 mei van dat jaar het winnende doelpunt in de halve finales van de play-offs voor promotie. De club verhuurde hem op 1 september 2025 aan Birmingham City. Halverwege het seizoen nam Birmingham op definitieve basis over van Sunderland en tekende hij een contract dat hem voor 2,5 jaar aan de club bond.