Ryan Roberts est repêché en 18eronde par les Blue Jays de Toronto en 2003. Il gravit les échelons vers le baseball majeur ne dispute que dix-sept parties en deux années (2006 et 2007) pour Toronto. Son entrée dans les majeures se fait le . Comme premier coup sûr dans les grandes ligues, il réussit un coup de circuit d'un point au Yankee Stadium de New York face au lanceur des Yankees, Cory Lidle, le [1].
Ryan Roberts joue pour les Diamondbacks de 2009 à 2012.
Roberts rejoint les Diamondbacks de l'Arizona comme agent libre le . En 2009, il apparaît dans 110 parties des D-Backs, de loin son plus grand nombre de matchs joués en une année pour un club du baseball majeur. Fréquemment employé comme frappeur suppléant, il se voit aussi confier le poste de joueur de deuxième but. Roberts affiche une moyenne au bâton de ,279 durant la saison, avec 25 points produits.
En 2010, il éprouve beaucoup de difficulté en offensive lors de son passage chez les Diamondbacks: sa moyenne stagne à ,197 en 36 matchs joués. Par conséquent, il joue la majeure partie de la saison avec les Aces de Reno, club-école de la franchise dans la Ligue de la côte du Pacifique.
En 2011, Roberts démontre plus de puissance au bâton avec ses 19 circuits et ses 65 points produits. À ces deux records personnels, il ajoute un nouveau sommet de 120 coups sûrs en une année.
Après 83 parties pour Arizona en 2012, Roberts frappe pour ,250 de moyenne au bâton avec 6 longues balles et 34 points produits.
Roberts termine la saison 2012 avec 12 circuits, 52 points produits, 10 buts volés et une moyenne au bâton de ,235 en 83 matchs joués pour les Diamondbacks et 60 pour les Rays.
Il entre en jeu dans 60 matchs de saison régulière des Rays en 2013 et ne réussit que 5 circuits et 17 points produits pour aller avec sa moyenne au bâton de ,247 et un faible pourcentage de présence sur les buts de ,295.