Conocido por las audiencias por sus papeles en las series The Story of Tracy Beaker y Red Oaks. Saltó a la fama por su papel de Oliver Tate en la película Submarine del 2010. También ha aparecido en las comedias del 2014 22 Jump Street y Neighbors.
Apareció en el drama televisivo Care cuando tenía nueve años.
En la edición Young Hollywood de la revista Nylon fue nombrado como una de las 55 caras del futuro.
Creció con su familia en Caerphilly en Gales del Sur. Tiene hermanas llamadas Chelsea, Natalee y Angharad.
Interpretó a John Reed en Jane Eyre (2011), protagonizada por Mia Wasikowska.