È la stagione delle vacanze di Natale nel Greenwich Village. Gillian Holroyd è una strega. Non obbedisce alle regole della stregoneria e le piace andare in giro a piedi nudi. Non ha avuto fortuna in amore. È infelice con la sua vita. Ha un amore ammirato per il suo vicino, l'editore Shep Henderson.
Un giorno entra nella sua galleria d'arte africana. Chiede di fare una telefonata (dopo che la zia di Gillian ha fatto un incantesimo sul suo telefono e lo ha rotto). Gillian scopre che Shep sta per sposare un suo vecchio nemico del college, Merle Kittridge. Gil e Pyewacket si vendicano lanciando un incantesimo su Shep, così lui deve innamorarsi di lei. Alla fine anche lei si innamora di lui. Deve fare una scelta, perché le streghe che si innamorano perdono i loro poteri soprannaturali. Quando decide di amare Shep, il gatto e spirito animale di Gillian, Pyewacket, si arrabbia e se ne va.
Sidney Redlitch, l'autore di un best-seller Magic in Mexico, appare improvvisamente nell'ufficio di Shep (grazie a un piccolo trucco magico che lo porta lì). Gilliam e Pyewacket lo fanno arrivare quando lei scopre che Shep vuole incontrarlo per scrivere un libro insieme. Redlitch è disorientato e confuso, ma presto lo capisce. Redlitch sta facendo ricerche per un libro sulle streghe a New York. Ha un aiutante "interno" quando Nicky, il fratello stregone di Gillian, si offre di aiutarlo in cambio di una parte dei profitti.
Gillian più tardi confessa a Shep di essere una strega e di averlo stregato. Shep si arrabbia, credendo che lei gli abbia fatto un incantesimo solo per vendicarsi di Merle, e i due litigano. Gillian cerca di lanciare vari incantesimi su Merle, come quello di farla innamorare del primo uomo che entra nel suo appartamento. Scopre però che ha perso i suoi poteri perché ama Shep.
Nel frattempo, Shep scopre che non può davvero lasciare Gillian, a causa dell'incantesimo. Per fuggire, si rivolge a un'altra strega, Bianca De Pass, che rompe l'incantesimo con un orribile infuso cotto che lui deve bere. Shep litiga di nuovo con Gillian e la lascia con il cuore spezzato.
Shep non è in grado di tornare insieme a Merle. Non crede che la storia della strega sia vera. Mesi dopo, Shep ritorna e scopre che Gillian ha perso i suoi poteri magici a causa del suo amore per lui. Anche Pyewacket l'ha lasciata perché non è più magica. Quando si rende conto che il suo amore è vero, i due fanno pace.