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. Other film credits include Jack the Giant Slayer, Mad Max: Fury Road and The Favourite.
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.