Debiutował w 1977 roku w filmie pod tytułem „Wilde” - opartym na biografii pisarza Oskara Wilde’a.
Dwa dni po otrzymaniu dyplomu ze szkoły aktorskiej otrzymał propozycję zagrania elfa Legolasa w trylogii Petera Jacksona "Władca Pierścieni". Rola ta była przełomowa w jego karierze - powtórzył ją w serii filmów "Hobbit".
Dalsze uznanie zyskał występując w filmach fantasy, historycznych i przygodowych, zwłaszcza jako Will Turner w serii filmów "Piraci z Karaibów", w filmach: "Paryż" i "Troja", jako Balian de Ibelin w "Królestwie Niebieskim" i Książę Buckingham w "Trzech muszkieterach".
W 2002 roku otrzymał filmową nagrodę MTV w kategorii „Przełomowa Rola Męska”.
