Rechter Claude Frollo (Tony Jay) wil de stad Parijs zuiveren van het kwaad, en de zigeuners zijn zijn geliefde doelwit. Wanneer hij in zijn overijver een jonge zigeunerin van een trap laat vallen, en de vrouw een vreselijk mismaakt kind bleek te dragen, wil Frollo hem zich van het onfrisse zaakje ontdoen en het kind in een waterput gooien. De aartsbisschop heeft echter de zaak voor zijn ogen zien gebeuren, en hij verplicht Frollo moreel om toch tenminste het kind te onderhouden. Frollo sluit hem op in de toren, waar hij, als hij ouder zal zijn, de klokken kan luiden, en noemt hem Quasimodo, de half gevormde. Quasimodo (Tom Hulce) leeft een eenzaam leven, waar zelfs zijn drie vriendjes-waterspuwers hem niet gelukkig kunnen maken. Tijdens het carnaval waagt de mismaakte bultenaar zich naar beneden, in de waan verkerend dat zijn misvorming zal aanzien worden als een carnavalsmasker. De zaken lopen wat uit de hand: Quasimodo wordt achtereenvolgens tot Zot van het Jaar gekroond en dan door het publiek bespot, nadat de zigeunerin Esmeralda (Demi Moore) hem op het podium heeft gesleept. Esmeralda's vrijpostige houding is een doorn in het oog van Frollo, die langs de andere kant een ziekelijke begeerte voor haar koestert. Quasimodo kan haar kerkasiel verlenen, en wanneer Esmeralda door Quasimodo weer naar buiten, voorbij de wachters wordt geloodsd, ontlaadt Frollo's woede zich in alle hevigheid. Hij beveelt zijn nieuwe kapitein, Phoebus (Kevin Kline) om de stad te zuiveren van zigeuners, en niets of niemand te ontzien om hem Esmeralda te brengen. Phoebus weigert om onschuldige burgers te executeren, en wordt zelf geroyeerd. Door een list van Frollo verraden Phoebus en Quasimodo per ongeluk de locatie van het Hof der Wonderen, waar Esmeralda zich schuilhoudt, en ze wordt, na een laatste poging van Frollo om haar tot de zijne te maken, tot de brandstapel veroordeeld.