6 января 1482 года в Париже проходят «гуляния, совмещающие праздник Крещения Господня с древним языческим праздником шутов». В этот день, согласно традиции, на Гревской площади зажигают веселые огни и украшают деревья, что можно считать прообразом рождественской ёлки.
По указанию кардинала Бурбонского Карла в центральном зале Дворца правосудия («Большая зала») должна была состояться пьеса с участием библейских персонажей и древнеримских богов — мистерия. Пьеса была посвящена предстоящему бракосочетанию «сына льва Франции», наследника французского престола дофина Карла и Маргариты Австрийской. После мистерии планировалось избрание главного комедианта Парижа — шутовского папы.
Кардинал и почетные фландрские гости опоздали на мистерию, слишком долго слушая речи лектора университета. Над лекторами, экономами и попечителями насмехается ленивый студент Жеан Фролло, младший брат одного из главных героев: «А у нас в лавчонке всякой дряни по 4 штуки: 4 праздника, 4 факультета, 4 лектора, 4 эконома, 4 попечителя и 4 библиотекаря!» Автор мистерии, Пьер Гренгуар, пообещал договориться с кардиналом, и представление началось без Карла. Когда Карл, а также послы Фландрии (в частности, Гильом Рим и Жак Копеноль) прибыли, Пьер в бессильной ярости сжал кулаки, так как зрителям было уже не до творения поэта. Последняя надежда завершить мистерию «рассеялась, как дым», когда толпа закричала: «Эсмеральда на площади!» и выбежала из дворца.
Состоялось избрание шутовского папы — им стал горбатый звонарь собора Парижской Богоматери Квазимодо. Пьер в отчаянии покинул дворец. У него не было места, где можно было бы провести ночь, так как он надеялся расплатиться за жильё на вырученные за мистерию деньги. Он решил разделить радость с народом и направился к огню на площади. Там Пьер увидел танцующую девушку «такой красоты, что даже Бог предпочел бы её Деве Марии». После танца Эсмеральда начала демонстрировать необычные способности своей козочки Джалли, что вызвало критику со стороны священника Клода Фролло, наставника горбуна Квазимодо. Воры, нищие и бродяги чествовали своего нового горбатого короля. Увидев это, Клод сорвал с Квазимодо одежду, отобрал скипетр и уволок горбуна.
Цыганка собирает деньги за свой танец и отправляется домой. Пьер следует за ней, надеясь, что у неё, помимо красоты, есть доброе сердце, и она поможет ему с жильём. На глазах Пьера Эсмеральду похищают Квазимодо и таинственный человек с закрытым лицом. Эсмеральду спасает блестящий офицер Феб де Шатопер, и она влюбляется в него.
Следуя за девушкой, Гренгуар оказывается во Дворе чудес, где живут парижские нищие. Клопен обвиняет Пьера в незаконном вторжении в их территорию и собирается его повесить. Поэт просит принять его в их сообщество, но не справляется с испытанием; ему нужно вытащить кошелёк у чучела с бубенчиками, не издав ни звука. В последние минуты перед казнью нищие вспоминают, что по закону Пьер должен сказать, найдется ли женщина, которая выйдет за него замуж. Если такая найдется, приговор отменяется. Эсмеральда согласилась стать женой поэта. Он узнал её. Их «обвенчали» на 4 года, но девушка не позволяет Гренгуару прикоснуться к себе. Эсмеральда носила амулет, который должен был помочь ей найти родителей, но он действовал только до тех пор, пока цыганка оставалась девственницей.
После «свадьбы» Гренгуар сопровождает Эсмеральду на её выступлениях на площади. Во время одного из танцев архидиакон Фролло узнаёт в её новом спутнике своего ученика Гренгуара и начинает расспрашивать поэта о его связи с уличной плясуньей. Женитьба Эсмеральды и Гренгуара возмущает священника, он требует от философа, чтобы тот не прикасался к цыганке. Гренгуар сообщает Фролло, что Эсмеральда влюблена в некого Феба и мечтает о нём. Эта новость вызывает у архидиакона сильный приступ ревности, и он решает любой ценой узнать, кто этот Феб, и разыскать его.
Поиски Фролло увенчиваются успехом. В движении ревности он не только находит капитана Феба, но и наносит ему серьёзную рану во время его свидания с Эсмеральдой, что ещё больше настраивает против себя цыганку.
Эсмеральду обвиняют в убийстве Феба (Клоду удаётся покинуть место преступления, выпрыгнув через окно в реку), заключают под стражу и подвергают пыткам, после чего она, не выдержав, признаёт свою «вину». Эсмеральда приговорена к казни через повешение на Гревской площади. В ночь перед казнью в темницу к девушке приходит архидьякон. Он предлагает ей сбежать с ним, но она, разъяренная, отталкивает убийцу своего любимого Феба. Даже перед казнью все её мысли заняты Фебом. Судьба предоставляет ей шанс увидеть его в последний раз; он стоит совершенно спокойный на балконе дома своей невесты Флёр-де-Лис. В последний момент Эсмеральду спасает Квазимодо и прячет в соборе.
Эсмеральда не перестаёт мечтать о капитане королевских стрелков (рана его оказалась несмертельной), не веря, что он давно её забыл. Все обитатели Двора чудес идут её спасать. Они штурмуют Собор Парижской Богоматери, который ревностно защищает Квазимодо, полагая, что бродяги пришли для казни цыганки. В этой схватке погибают Клопен Труйльфу и Жеан Фролло.
Когда началась осада собора, Эсмеральда спала. Внезапно в её келью приходят двое: её «муж» Пьер Гренгуар и таинственный человек в чёрной одежде. Объятая страхом, она всё же идет следом за ними. Они тайно выводят её из собора. Слишком поздно Эсмеральда понимает, что молчаливый спутник — архидьякон Клод Фролло. На другом берегу реки Клод в последний раз спрашивает, что она выбирает: быть с ним или быть повешенной. Девушка непреклонна. Тогда разгневанный священник отдаёт её под охрану затворнице Гудуле.
Затворница жестока и бесцеремонна к девушке, ведь она цыганка. Но всё решается самым неожиданным образом — оказывается, что малышка Агнесса, которую похитили цыгане у Гудулы (Пакетты Шантфлери), и Эсмеральда — одно и то же лицо. Гудула обещает спасти дочь и прячет её в своей келье. Но когда за девушкой приходят стражники, среди них оказывается Феб де Шатопер. В порыве любви Эсмеральда забывает об осторожности и зовёт его. Все старания матери оказываются напрасными. Дочь забирают, и она до последнего пытается спасти её, но в итоге погибает сама.
Эсмеральду вновь приводят на площадь. Только тогда девушка осознаёт ужас неминуемой смерти. С вершины собора за этой трагической сценой наблюдают Квазимодо и, конечно, Клод Фролло.
Понимая, что Фролло виновен в смерти цыганки, обезумевший от гнева Квазимодо сбрасывает своего приёмного отца с вершины собора. Клод Фролло разбивается насмерть. Переведя взгляд с площади на подножие собора, с бьющегося в предсмертных конвульсиях тела цыганки на изувеченное тело священника, Квазимодо в отчаянии восклицает: «Вот всё, что я любил!» После этого горбун исчез.
В финальной сцене романа говорится о том, как в гробнице Монфоконской виселицы были найдены два тела, одно из которых обнимало другое. Это были Квазимодо и Эсмеральда. Когда их попытались разъединить, скелет Квазимодо рассыпался в прах.
...ещё