名家ウィルハーン家には言い伝えがある。5代前のラルフは使用人クララを妊娠させるが、彼女を捨てて名家の娘と結婚した。失意のクララが崖から身を投げた夜、彼女の母親が魔女となって屋敷に現れ、次に生まれる娘が豚の鼻と耳になる呪いをかけた。呪いを解く方法は、名家の息子が娘に永遠の愛を誓うこと。その後は息子ばかり生まれ、初めて生まれた娘がペネロピ(クリスティーナ・リッチ)だった。母ジェシカ(キャサリン・オハラ)は娘を大衆の目から守るため、彼女を死んだことにして屋敷に幽閉する。ペネロピが18歳になるとお見合いが始まる。何人もの花婿候補がやってきたが、彼女を一目見るや逃げ出した。しかし彼らは帰る前に屋敷に連れ戻され、口止めの契約を結ばされた。お見合いを続けて7年経ったある日、ジェシカはヴァルダーマン家のエドワード(サイモン・ウッズ)を逃がしてしまう。エドワードは警察に「豚人間を見た」と訴えるが、妄想だと片付けられてしまった。エドワードは名誉挽回のため、ペネロピのスクープを狙う記者レモン(ピーター・ディンクレイジ)と組み、彼女の写真を入手しようとする。2人は、名家出身で今はギャンブラーの青年マックス(ジェームズ・マカヴォイ)を5000ドルで雇い、お見合いに送り込む。隠しカメラを仕込んだジャケットを着たマックスは、ペネロピとマジックミラー越しにお見合いをする。2人は惹かれ合い、3回目のお見合いでペネロピが姿を見せる。マックスは一瞬驚きながらも彼女の顔に優しく触れようとするが、カメラのシャッター音がしてしまう。マックスはレモンたちの元に戻り、カメラを地面に叩きつけて壊す。マックスはペネロピに会いに行き、スパイだったことを告白しようとする。ペネロピはそれを遮り、結婚を申し込む。しかしマックスはそれを受け入れることはできなかった。ジェシカは花婿選びに更に熱を入れるが、ペネロピはお見合いを続ける気になれず、1人で屋敷を出る。