Het is de kerstvakantie in Greenwich Village. Gillian Holroyd is een heks. Ze houdt zich niet aan de regels van de hekserij en loopt graag op blote voeten rond. Ze heeft geen geluk gehad in de liefde. Ze is ongelukkig met haar leven. Ze heeft een bewonderende liefde voor haar buurman, uitgever Shep Henderson.
Op een dag loopt hij haar Afrikaanse kunstgalerie binnen. Hij vraagt of hij mag telefoneren (nadat Gillians tante zijn telefoon had betoverd en kapotgemaakt). Gillian verneemt dat Shep op het punt staat te trouwen met een oude studievijand van haar, Merle Kittridge. Gil en Pyewacket nemen wraak door Shep te betoveren, zodat hij wel verliefd op haar moet worden. Zij wordt uiteindelijk ook verliefd op hem. Ze moet een keuze maken, want heksen die verliefd worden, verliezen hun bovennatuurlijke krachten. Als ze besluit van Shep te houden, wordt Gillians kat en dierlijke geest, Pyewacket, boos en vertrekt.
Sidney Redlitch, de auteur van een bestseller Magie in Mexico, verschijnt plotseling in Shep's kantoor (dankzij een kleine goocheltruc die hem er gewoon heen brengt). Gilliam en Pyewacket laten hem komen als ze ontdekt dat Shep hem wil ontmoeten over het samen schrijven van een boek. Redlitch is verbijsterd en verward, maar heeft het al snel door. Redlitch doet onderzoek voor een boek over heksen in New York. Hij krijgt een "inside" helper wanneer Gillian's tovenaarsbroer Nicky aanbiedt te helpen in ruil voor een deel van de winst.
Gillian biecht later aan Shep op dat ze een heks is en hem betoverd heeft. Shep wordt boos en denkt dat ze hem betoverd heeft om wraak te nemen op Merle, en de twee krijgen ruzie. Gillian probeert verschillende toverspreuken over Merle uit te spreken, bijvoorbeeld dat ze verliefd wordt op de eerste man die haar appartement binnenloopt. Ze komt er echter achter dat ze haar krachten heeft verloren omdat ze van Shep houdt.
Ondertussen ontdekt Shep dat hij Gillian niet kan verlaten, vanwege de betovering. Om te ontsnappen wendt hij zich tot een andere heks, Bianca De Pass, die de betovering verbreekt met een gruwelijk gekookt brouwsel dat hij moet drinken. Shep maakt opnieuw ruzie met Gillian en laat haar gebroken achter.
Shep is niet in staat om terug samen te komen met Merle. Ze gelooft niet dat het heksenverhaal waar is. Maanden later keert Shep terug en komt erachter dat Gillian haar magische krachten heeft verloren door haar liefde voor hem. Zelfs Pyewacket heeft haar verlaten omdat ze niet meer magisch is. Als hij beseft dat haar liefde waar is, maken de twee het goed.