He had his first small film role in the 2004 film Being Julia at age 19.
He plays the lead character Milo Richards in the 2014 British drama The Riot Club.
His mother, Sinéad Cusack, is an actor as well. He dated Emily Browning in 2011 and has one older brother named Samuel Irons.
He had a supporting role in the 2009 film Dorian Gray with Ben Barnes.