É a época das festas de Natal em Greenwich Village. Gillian Holroyd é uma bruxa. Ela não obedece às regras da feitiçaria e gosta de andar descalça. Ela não tem tido sorte no amor. Ela é infeliz com sua vida. Ela tem um amor admirável pelo seu próximo, a editora Shep Henderson.
Um dia, ele entra em sua galeria de arte africana. Ele pede para fazer um telefonema (depois que a tia de Gillian colocou um feitiço em seu telefone e o quebrou). Gillian fica sabendo que Shep está prestes a se casar com um velho inimigo da faculdade dela, Merle Kittridge. Gil e Pyewacket se vingam lançando um feitiço sobre Shep, então ele tem que se apaixonar por ela. Ela eventualmente também se apaixona por ele. Ela deve fazer uma escolha, porque as bruxas que se apaixonam perdem seus poderes sobrenaturais. Quando ela decide amar Shep, o gato e o espírito animal de Gillian, Pyewacket, fica com raiva e vai embora.
Sidney Redlitch, o autor de um livro best-seller Magic in Mexico, aparece de repente no escritório de Shep (graças a um pequeno truque de magia que o leva até lá). Gilliam e Pyewacket fazem-no chegar quando ela descobre que Shep quer se encontrar com ele para escrever um livro juntos. Redlitch está confuso e confuso, mas logo se entende. Redlitch está fazendo pesquisa para um livro sobre bruxas em Nova York. Ele é um ajudante "interno" quando o irmão mago de Gillian, Nicky, se oferece para ajudar em troca de uma parte dos lucros.
Mais tarde, Gillian confessa a Shep que é uma bruxa e o enfeitiçou. Shep fica furioso, acreditando que lançou um feitiço sobre ele só para se vingar de Merle, e os dois discutem. Gillian tenta lançar vários feitiços sobre Merle, como fazer com que ela se apaixone pelo primeiro homem que entre em seu apartamento. Ela descobre, entretanto, que perdeu seus poderes porque ama Shep.
Enquanto isso, Shep descobre que realmente não pode deixar Gillian, por causa do feitiço. Para escapar, ele se volta para outra bruxa, Bianca De Pass que quebra o feitiço com uma horrível poção cozida que ele deve beber. Shep luta novamente com Gillian e deixa seu coração despedaçado.
Shep não é capaz de se reunir novamente com Merle. Ela não acredita que a história das bruxas seja verdadeira. Meses mais tarde, Shep volta e descobre que Gillian perdeu seus poderes mágicos por causa de seu amor por ele. Até mesmo Pyewacket a deixou porque ela ainda não é mágica. Quando ele percebe que o amor dela é verdadeiro, os dois fazem as pazes.