Debido a una maldición familiar, la nueva hija del matrimonio Wilhern nació con una peculiaridad. Sus padres han logrado esconderla de los flashes y de las miradas curiosas, y Penélope (Christina Ricci) creció en la soledad de su hogar, soñando con conocer el exterior. Cuando la joven crece, comienza un desfile de candidatos que su madre (Catherine O´Hara) lleva a la casa con el fin de encontrar un hombre que se enamore de ella y por fin rompa esa horrible maldición.
Pero la peculiar Penélope los recibe como si asistieran a una entrevista laboral, y cuando se cansa de ellos, decide mostrarse como en realidad es. Por supuesto, todos los jóvenes que llegan, salen despavoridos en cuanto descubren el secreto de los Wilhern: Penélope nació con nariz de chancho.
Y por supuesto, como cada princesa tiene un príncipe, llegará la hora en que el príncipe azul arribe a su puerta, aunque Johnny? o Max (James McAvoy), como se hace llamar, está lejos de la realeza. Es simplemente un jugador compulsivo al que envían a la mansión a obtener una foto del fenómeno, para así descubrir su secreto al mundo. Pero el posible amor de un hombre no bastará para calmar a Penélope, que desde siempre deseó conocer otros lugares. Por eso, cuando escapa de su encierro comienza a conocerse a sí misma y en el camino, mientras se sorprende, se aterroriza y se relaciona con personas diferentes, irá descubriendo el verdadero sentido de la vida. Y también de aquella maldición que la convirtió en lo que es: una persona hermosa, a pesar de lo que puedan decir todos. Una heroína para un moderno cuento de hadas.