Film ini kisah tentang pencarian jodoh Penelope dan cinta sejatinya. Penelope Wilhem (Christina Ricci) adalah seorang
gadis muda yang cerdas berasal dari keluarga kaya raya dan terhormat. Semua yang dimilikinya sebenarnya bisa membuatnya menjadi seorang jodoh sempurna bagi siapa pun yang berasal dari kalangan yang sama dengannya. Kenyataannya tidak seperti itu. Ia sulit mendapat jodoh. Kenapa? Wajahnya seperti babi.
Akibat perbuatan nenek moyangnya, putri tunggal keluarga kaya raya itu terkena kutukan berwajah seperti babi. Asal mula kutukan itu berasal dari kesalahan nenek moyangnya. Beratus-ratus tahun yang lalu, seorang putra keluarga Wilhem "meniduri" salah seorang dari pelayannya. Akibatnya gadis pelayan itu hamil. Putra Wilhem itu sebenarnya mau mempertanggung jawabkan perbuatannya. Ia mau menikahi pelayan yang dihamilinya. Tapi, keinginannya ditentang oleh keluarganya. Alasan mereka karena status sang putra dan sang pelayan sangat berbeda. Tak mungkin mereka mau menerima sang pelayan sebagai bagian dari mereka. Itu sangat tak pantas. Sang pemuda dinikahkan dengan gadis lain dari keluarga yang juga kaya raya.
Sang pelayan yang stress dengan penolakan keluarga majikannya memilih bunuh diri. Satu yang tak diketahui keluarga Wilhem adalah ibu sang pelayan adalah seorang penyihir. Ia tak terima dengan kematian putrinya, sang penyihir marah dan mengutuk keluarga Wilhem.
"Saya mengutuk putri pertama keluarga Wilhem. Dia akan berwajah seperti babi. Kutukannya akan hilang kalau ada pemuda yang mau menerimanya apa adanya dan bersedia menikahinya," kutuk sang penyihir.
Keluarga Wilhem dibuat kalang kabut karena kutukan sang penyihir. Setiap kali ada pernikahan dalam keluarga Wilhem, maka menunggu kelahiran anak pertama menjadi hal yang sangat menegangkan. Mereka beruntung. Sampai generasi kelima, belum ada anak perempuan pertama yang lahir dari keluarga itu.
Lalu lahirlah Penelope Wilhem. Putri pertama keluarga Wilhem setelah lima generasi. Dan sesuai kutukan sang penyihir, hidungnya seperti babi. Karena malu, maka Penelope dikucilkan dari dunia luar. Ketika ada seorang reporter yang berusaha mendapatkan foto bayi Penelope, kedua orang tuanya Franklin (Richard E. Grant) dan Jessica (Catherine O'Hara) menyembunyikannya di mansion kelurga mereka. Mereka frustasi dan malu karena wajahnya putri mereka. Mereka menjaganya dengan pengawasan ketat. Disanalah Penelope menjalani hidupnya jauh dari sorotan umum. Ia belajar literatur, holtikultura dan musik. Ternyata, ia adalah gadis yang cerdas.
Tahun-tahun berlalu, Penelope menjadi gadis dewasa dan akhirnya sampai juga saat ia harus memilih jodoh. Kedua orangtuanya berusaha memperkenalkannya pada calon jodoh yang mungkin kaya dan berharap salah seorang dari mereka akan jatuh cinta pada putri mereka dan bersedia menikahinya. Malangnya, setiap lelaki yang yang memandangnya tidak pernah berbalik dua kali untuk melihatnya termasuk Edward Humphrey Vanderman III. Lelaki jahat yang bermaksud memanfaatkan keadaan wajah Penelope.
Bersama dengan seorang reporter Lemon (Peter Dinklage) yang sudah bertahun-tahun berusaha mendapatkan foto Penelope , Vanderman mencari seseorang yang bisa masuk ke rumah keluarga Wilhem dan mendapatkan foto Penelope. Mereka keliru mengambil Johny Martin ( James McAvoy). Ketika pertama kali bertemu dengan Penelope , Johny tak mempermasalahkan keadaan Penelope karena sikap hangat gadis itu. Ia menyukai Penelope. Menyadari perbuatannya suatu kesalahan, Johny bermaksud membatalkan kesepakatannya dengan Lemon dan Vanderman. Sebaliknya Penelope menafsirkan sikap Johny sebagai menganggapnya jelek dan menakutkan. Penelope memutuskan untuk bebas dari pengawasan orang tuanya. Ia pergi ke kota, berpikir semua orang menyukainya. Penelope tidak peduli dengan dunia yang selalu dijauhkan darinya sejak ia masih bayi. Dalam keadaan tak punya uang , Penelope mendengar rencana Lemon dan Vanderman yang akan memberi hadiah bagi siapa saja yang bisa mendapatkan foto dirinya. Ia memutuskan untuk mendapatkan hadiah itu dengan memberikan foto dirinya sendiri tanpa sepengetahuan publik.
Ketika menyadari betapa publik menyukai Penelope, ayah Vanderman sangat malu akan kelakuan putranya. Ia memaksa Vanderman melamar Penelope. Mereka hampir menikah namun di saat-saat terakhir, Penelope memutuskan untuk menjalani hidupnya dengan keadaannya yang sebenarnya. Ia kesal dengan desakan ibunya untuk menikahi Vanderman. Ia mengatakan menyukai dirinya apa adanya. Hasilnya, ia mematahkan kutukan itu. Wajahnya yang seperti babi lenyap berganti menjadi wajah yang cantik.
Penelope melanjutkan hidupnya dengan menjadi seorang guru. Wajahnya yang terkena kutukan segera dilupakan publik. Pada malam Halloween, Penelope memakai topeng yang menyerupai wajahnya semula yang seperti babi. Ia menemukan Johny Martin di pesta itu. Johny sama sekali tak menyadari kalau Penelope telah bebas dari kutukan. Ia meminta maaf pada Penelope karena tak bisa membantunya mematahkan kutukan itu. Sikapnya menunjukkan kalau ia masih mencintai Penelope. Setelah melepaskan topengnya dan menyadari kalau ia punya kekuatan untuk melepaskan diri dari kutukan itu, Penelope dan Johny menjadi sepasang kekasih.
Film ini berakhir bahagia. Keduanya saling mencintai. Lemon mengambil foto mereka berdua ketika sedang bersama sehabis Penelope mengajar kelas holtikultura.