Elle débute sa carrière grâce à des publicités diffusées à la télévision.
En 1999, alors qu’elle n’a que 16 ans, elle est choisi par Georges Lucas pour interprété le rôle de Sabé dans La menace fantôme , le premier épisode de la 2me trilogie de la Guerre des étoiles.
Elle enchaîne avec deux série TV, puis deux autres films (Un film d’horreur The Hole en 2001, et un film comique Joue-la comme Beckham en 2002).
En 2003, elle tient un des rôles principaux du film "Pirates des caraïbes" avec Johnny Deep, puis elle enchaîne, la même année, avec Love actually, une comédie romantique de Richard Curtis.
En 2004, elle joue le rôle de Guenièvre dans "Le roi Arthur" , puis le rôle d’une chasseuse de prime dans Domino.
En 2005, elle interprète le rôle d’une jeune femme marginale dans The Jacket au côté d’Adrien Brody".