Penelope (Christina Ricci) permaneceu toda sua infância trancada em casa por conta de uma maldição de sua família. Com um defeito saliente no nariz, a garota não conseguia sair de casa sem ser chamada de "menina-porco". Agora que está entre a adolescência e a vida adulta, a jovem terá que aprender a lidar com seu próprio nariz e descobrir a sua personalidade na busca por um romance.
Na época das Cruzadas, um nobre e sua esposa grávida sofrem um acidente, mas ele consegue salvar a criança. Algum tempo depois, ele decide se casar novamente, sem imaginar que sua nova esposa praticava bruxarias e que com o tempo perseguiria a enteada.