Became recognized for his roles in X-Men: First Class and About a Boy, for which he won a Phoenix Film Critics Society Award for Best Performance. He also appeared in the 2013 film Jack the Giant Slayer and in the 2015 film Mad Max: Fury Road.
He was offered the role of Marcus for the film Intimate Relations when he was six. In 1996, he made his debut appearance as Bobby in Intimate Relations.
He starred in the British teen drama Skins, for which he was nominated for a Walkers Home Grown Talent Award.
His mother, Glenis, was a piano instructor and his father, Roger, was a pilot for British Airways. In 2017, he began a relationship with Bryana Holly. He and Bryana welcomed their first child together in April 2018. From 2010 to 2014, he dated X-Men: First Class co-star Jennifer Lawrence.
He starred alongside Hugh Grant in the 2002 film About A Boy.