Grimes è nato a Dayton, Ohio, in una famiglia estremamente religiosa, ultimo di quattro fratelli. Suo padre è un pastore pentecostale presso la Open Bible Christian Church. Si è diplomato nel 2002 alla Dayton Christian High School. Dopo il diploma, Grimes si trasferisce a New York per studiare recitazione presso l'American Academy of Dramatic Arts.
Nel 2010 prende parte al pilota di FX, Outlaw Country, con Haley Bennett e Mary Steenburgen. La serie non è stata prodotta da FX, e il pilota è stato trasmesso nell'agosto 2012 come un film per la televisione.
Nel 2012 riceve un ruolo nel thriller Taken - La vendetta, dove recita al fianco di Liam Neeson.
Nel 2013 fa parte del cast della sesta stagione di True Blood, nel ruolo ricorrente del vampiro James. Per divergenze creative Grimes decide di abbandonare la serie e il ruolo di James viene affidato a Nathan Parsons nel settima stagione. Sempre nello stesso anno è protagonista della commedia drammatica Squatters uscito nelle sale cinematografiche però nel 2014. Nel 2015 è il co-protagonista dell'adattamento cinematografico di Cinquanta sfumature di grigio, dove Grimes interpreta il fratello adottivo del protagonista.
Dal 2018 è uno dei protagonisti nella serie Yellowstone dove interpreta il ruolo di Kayce, uno dei figli di John Dutton (interpretato da Kevin Costner).
Gianluca Cortesi in True Blood, Cinquanta sfumature di grigio, Freeheld - Amore, giustizia, uguaglianza, Cinquanta sfumature di nero, Cinquanta sfumature di rosso, Into the Ashes, Yellowstone, La felicità per principianti
Andrea Mete in Brothers & Sisters - Segreti di famiglia, El Camino Christmas