Synopsis
Pénélope (Christina Ricci) n'a pas de chance. Elle est née dans une famille frappée par une malédiction. Une vieille sorcière leur a jeté un sort "La première fille qui naîtra dans cette famille aura le visage d'un cochon". La jeune fille trouvera un nez normal seulement si elle réussit à faire accepter son apparence et aussi à se faire aimer. Une opération rate et elle reste donc enfermée chez elle. Dès que Pénélope devient une jeune femme, sa mère se met à la recherche d'un prétendant convenable. Mais, elle échoue dans ce projet car, dès que Pénélope apparaît, les riches jeunes gens s'enfuient. Seul Max (James McAvoy) ne part pas. Il a été embauché pour photographier – sournoisement – Pénélope, car le journal désire une photo de la fille à la tête de cochon!! Pénélope trouve Max de plus en plus gentil quand elle réalise la raison pour laquelle il reste auprès d'elle. Fortement déçue, elle décide de quitter la maison et de partir parcourir le monde à la recherche de gens honnêtes et de vrais amis. Très vite, elle se lie avec Annie (Rheese Witherspoon) qui lui démontre que son apparence n'est pas ce qui compte le plus aux yeux de beaucoup de personnes.