Roca werd op elfjarige leeftijd opgenomen in de jeugdopleiding van RCD Espanyol. Hij debuteerde op 26 augustus 2016 in de Primera División, tegen Málaga CF. Roca begon in de basiself en werd enkele minuten voor affluiten gewisseld.[3] Coach Quique Sánchez Flores raakte niet overtuigd van hem. Na een debuutseizoen waarin hij nog behoorlijk wat speeltijd kreeg, zat hij in 2017/18 het overgrote deel van het jaar op op de reservebank. Dat veranderde toen in juni 2018 Rubi aantrad als nieuwe coach. Hij zette Roca dat seizoen 35 speelronden in de basis. Daarmee brak hij definitief door. Espanyol en hij werden dat jaar zevende en plaatsten zich voor het eerst in dertien jaar voor Europees voetbal, in de Europa League. Roca behoorde in 2019/20 ook tot de basiself van het Espanyol dat laatste werd in de Primera División.
Roca speelde twee speelronden met Espanyol in de Segunda División, maar vertrok in oktober 2020 naar Bayern München. Daarvoor maakte hij zijn Bundesliga-debuut in een gewonnen wedstrijd tegen 1. FC Köln. In november 2020 speelde Roca zijn eerste wedstrijd in de Champions League, tegen Red Bull Salzburg. Hij kreeg in de tweede helft zijn tweede gele kaart en moest het veld verlaten. Roca stond twee seizoenen onder contract bij Bayern München, maar zowel coach Hansi Flick als diens opvolger Julian Nagelsmann maakten amper gebruik van hem. De Duitse club verkocht hem in juli 2022 aan Leeds United.
Roca was naar Leeds gehaald voor de basis. Hij speelde dat seizoen vrijwel alle speelronden in de Premier League en drie wedstrijden in de FA Cup. Leeds en hij belandden in speelronde 35 echter in de degradatiezone en kwamen daar niet meer uit. Roca daalde opnieuw niet mee af naar een lager niveau. Leeds verhuurde hem in plaats daarvan in juli 2023 voor een jaar aan Real Betis, de nummer zes van Spanje in het voorgaande seizoen.
Roca debuteerde in 2018 in Spanje –21. Hiermee won hij een jaar later het EK –21 van 2019. Hij kwam de eerste twee speelronden van dat toernooi niet in actie, maar speelde de derde groepswedstrijd, de halve finale en de finale helemaal. In de met 4–1 gewonnen halve finale tegen Frankrijk –21 schoot hij Spanje –21 op 1–1.