Centuries ago, a witch proclaimed that the next girl born to the aristocratic Wilhern family would have the nose of a pig. Generations pass, until Jessica (Catherine O'Hara) and Franklin (Richard E. Grant) lose the sorcery lottery. Their otherwise lovely daughter, Penelope (Christina Ricci), has a porcine snout. After the London gutter press, led by ferocious cub reporter Lemon (Peter Dinklage), gets a misleadingly scary photo of the sweet young girl, her parents lock her away in a beautiful mansion.
The only way to lift the curse would be if Penelope marries a man of her own class. Unforunately, despite their enormous wealth, her parents cannot find a suitor. Bewildered gentlemen end up flinging themselves through windows the second they see her - until Max (James McAvoy) comes along. He is a blue-blood addicted to gambling, with a sad heart and a devil-may-care attitude. Though he has a dastardly ulterior motive for meeting Penelope, the two become unlikely friends.