Penelope (CHRISTINA RICCI) is the only daughter of Franklin (RICHARD E. GRANT) and Jessica Wilhern (CATHERINE O'HARA), aristocrats who've kept her hidden away her entire life from the likes of photographer Lemon (PETER DINKLAGE) who wants to get a picture of the girl and her alleged pig's snout for a nose.
It seems she's the recipient of a generations-old curse placed on the family long ago. Until one of her own will love her for who she is, she'll possess the facial protuberance. Accordingly, her mother, along with matchmaker Wanda (RONNI ANCONA), has long been trying to fix her up with some nice young man from society, such as Edward Vanderman (SIMON WOODS).
Unfortunately, he and all of the other young men routinely flee in terror at the sight of her. When Edward gets in trouble for reporting her appearance that no one believes, he teams with Lemon to get a photo of her. Since neither is welcome in the Wilhern manor, they hire compulsive gambler Max Campion (JAMES McAVOY) to do the deed. He's reluctant, but having gambled away all of his money, he's short on cash and thus agrees.
Sensing he's different, Penelope doesn't initially reveal herself in person to him, in hopes that her appearance might not shock him if they've already established a relationship of sorts. From that point on, and as Penelope eventually gets out of the house and befriends local courier Annie (REESE WITHERSPOON), she hopes that one day her curse will be lifted and she can be just like everybody else.