Actor escocés mejor conocido por su papel de Leopold Fitz en la serie de televisión Marvel's Agents of S.H.I.E.L.D. En el 2014 consiguió el papel principal en el debut como director de Ryan Gosling, Lost River. Más tarde interpretó a Chase en la película Overlord del 2018.
Comenzó a actuar cuando era niño y tuvo un papel pequeño en la película The Little Vampire del 2000.
Apareció en el video musical de la canción "Please Don't Say You Love Me" de Gabrielle Aplin en el 2013.
Creció con su familia, incluyendo sus padres doctores, en Glasgow, Escocia. Tiene tres hermanos, incluyendo a su hermana melliza.
Ha aparecido en la serie de televisión Coronation Street como Chris Fountain.