Молодая девушка по имени Софи Хэттер — старшая из трех сестер, живущих в городе Маркет-Чиппинг. Город находится в королевстве Ингарии, в котором магия является обыденным делом. Софи искусно обращается с иглой и шьёт великолепные платья и шляпки, бессознательно наделяя предметы душой. Как старшая из сестёр, она смирилась с тем, что не найдёт своей судьбы и будет обречена вести скучную жизнь хозяйки шляпного магазина. Но злая Болотная Ведьма превращает её в старуху, ошибочно приняв за сестру, к которой в тот момент проявлял интерес Волшебник Хоул. Софи покидает свой магазин и находит пристанище в замке Хоула, известного в её родном городе как поедатель сердец молодых красивых девушек.
Вскоре Софи узнаёт, что Хоул, эгоцентричный высокомерный и бесчестный, в глубине души является добрым человеком (а также исключительно одаренным волшебником). Он сам распространяет слухи о своей кровожадности, чтобы избежать лишнего внимания, а также не выглядеть слишком благородным в глазах короля и тем самым избежать лишних обязанностей и ответственности. Входная дверь в замок на самом деле является порталом, открывающимся в четырех разных местах: у ходячего замка в холмах возле Маркет-Чиппинг, в прибрежном городе Портхэвен, в столице королевства Кингсбери и в родном доме Хоула в Уэльсе, где его знали под именем Хоуэл Дженкинс.
Софи заключает сделку с Кальцифером, домашним демоном Хоула: если Софи поможет разорвать договор Кальцифера с Хоулом, Кальцифер вернет Софи молодость. Однако выясняется, что условия договора не могут быть раскрыты посторонним ни Кальцифером, ни Хоулом. Софи пытается угадать, каковы эти условия, а Кальцифер подкидывает ей подсказки, которые, однако, Софи не понимает. Хоул узнает, что на Софи наложено заклятье и тайно пытается его снять. Когда попытка оказывается безуспешной, он приходит к выводу, что девушка сама желает оставаться старухой.
Ученик Хоула, Майкл Фишер, ведет большую часть повседневных дел Хоула, а хозяина замка занимают лишь его собственные любовные похождения. Хоул и Майкл ухаживают за младшими сестрами Софи, Летти и Мартой, соответственно. Марту, младшую сестру, отправили изучать магию, а среднюю, Летти, определили в ученицы к пекарю. Но Марта, притворившись Летти, устроила так, чтобы сёстры поменялись местами покскольку Фанни (мать Марты и мачеха Софи и Летти), не принимала во внимание их желаний, когда определяла будущую профессию.
Когда Принц Джастин, младший брат короля, пропал во время розысков Волшебника Салимана (известного также как Бенджамин Салливан из Уэльса), король приказал Хоулу найти Салимана и Джастина, а также убить Ведьму Пустошей. Но у Хоула были причины избегать конфликта с ведьмой: та была отвергнутой любовью Хоула и наложила на изменника заклятье. Волшебник попытался увильнуть от миссии, направив Софи под видом своей матери просить об отмене задания, но безрезультатно. Вместо того, чтобы очернить его имя, слова Софи сделали Хоула Королевским Волшебником, чего он всеми силами старался избежать.
Хоул продолжал избегать встреч с Ведьмой Пустоши, пока та не заманила Софи в ловушку: поверив, что нынешняя любовь Хоула, Лили Ангориан, захвачена ведьмой, Софи отправилась её спасать и в результате сама оказалась в плену. Хоул пришел ей на помощь и расправился с Ведьмой Пустоши, попутно узнав, что мисс Ангориан на самом деле была огненным демоном. Этот демон долгие годы управлял ведьмой, и когда та была повержена, попытался забрать сердце Хоула, чтобы выжить. Хоул мог остановить демона, но потерпел неудачу: мисс Ангориан захватила Кальцифера и попыталась достать из него сердце Хоула. Софи, используя свой талант наделять предметы душой, разорвала договор между Хоулом и Кальцифером, не причинив вреда никому из них. Она неосознанно удерживала на себе заклятье старости, однако беспокойство за Хоула помогло ей избавиться от чар и вновь стать молодой девушкой. Очнувшись, Хоул уничтожил огненного демона ведьмы и тем самым снял заклятье с Волшебника Салимана и Принца Джастина, которых ведьма слила воедино, пытаясь создать идеального человека (голова Хоула должна была стать последней частью этого существа), который стал бы её марионеткой на троне Ингари.
Софи и Хоул поняли, что любят друг друга (вслух этого не высказав), и Хоул предположил, что им придется теперь жить долго и счастливо и умереть в один день.