Best known for playing Legolas in the Lord of the Rings and Hobbit films and Will Turner in the Pirates of the Caribbean series, he has also appeared in such films as Troy, Kingdom of Heaven, and New York, I Love You.
He and his sister participated in poetry and Bible reading competitions while growing up. He was brought up as a member of the Church of England.
He was named a UNICEF Goodwill Ambassador in 2009.
After his mother's husband, the anti-Apartheid novelist Harry Saul Bloom, died, his mother told him that his real father was family friend Colin Stone. He dated his Elizabethtown co-star Kirsten Dunst in 2005. He had a son named Flynn with model Miranda Kerr, whom he was married to from 2010 to 2013. He dated pop star Katy Perry from 2016 to 2017.
He co-starred with Colin Firth in the 2010 drama Main Street.