Roberto begon met voetballen bij Santes Creus. Daar werd hij gescout door Gimnàstic de Tarragona, dat hem in de jeugdopleiding op nam. Vervolgens verhuisde hij in 2006 naar de jeugdopleiding van FC Barcelona te komen. Roberto begon er in het Cadete B-team. In het seizoen 2008/2009 werd hij met de Juvenil B - destijds getraind door Francisco Javier García Pimienta - kampioen van de regionale groep van de Liga Nacional Juvenil. In 2009 werd hij in de Juvenil A opgenomen, het hoogste jeugdelftal van FC Barcelona. Roberto debuteerde op 20 september 2009 voor Barça Atlètic, in een wedstrijd tegen CF Gavà.
Roberto speelde in november 2010 voor het eerst in het eerste elftal van Barcelona in een wedstrijd om de Copa del Rey, tegen AD Ceuta. In maart 2011 Later volgde zijn debuut in de UEFA Champions League (tegen Real Madrid) en in mei 2011 die in de Primera División (tegen Málaga CF). In december 2011 maakte Roberto zijn eerste doelpunt voor het eerste elftal van Barcelona, tegen FC BATE Borisov.
In het seizoen 2016/17 werd Roberto omgeschoold tot rechtsback. In de terugwedstrijd van de achtste finale van de Champions League tegen Paris Saint-Germain scoorde hij diep in de blessuretijd de 6-1 als voltooiing van een opmerkelijke comeback, nadat Barcelona de heenwedstrijd met 4-0 had verloren. In de volgende ronde was Juventus alsnog te sterk.
In de Clásico tegen Real Madrid van 6 mei 2018 (2-2 gelijk) pakte Roberto een rode kaart nadat hij Real-verdediger Marcelo een slag had gegeven. Hij kreeg hiervoor vier wedstrijden schorsing.
In oktober 2009 werd Roberto met het Spaans elftal derde op het WK onder 17. In de achtste finales scoorde hij een hattrick in de gewonnen wedstrijd tegen Burkina Faso (4-1). Onder leiding van bondscoach Vicente del Bosque maakte hij zijn debuut voor het Spaans voetbalelftal op zondag 27 maart2016, toen hij startte in de basisopstelling van het oefenduel in en tegen Roemenië (0-0). Roberto moest in die wedstrijd na 60 minuten plaatsmaken voor Cesc Fàbregas.