Interpretó a un psiquiatra en la película "Stay" (2005) de Marc Foster, personificó a Ian Rider en la adaptación de la serie de libros de Alex Rider, en "" (2006), participó en la superproducción "Ángeles y demonios" (2009), fue uno de los protagonistas de la película dirigida por Juan Antonio Bayona "Lo imposible" (2012) e interpretó el personaje protagónico de Christopher Robin Milne en la película "Christopher Robin" de 2018.