Gillian Holroyd (Kim Novak) est une sorcière moderne vivant à Greenwich Village. L'éditeur Shep Henderson (James Stewart) emménage dans l'appartement au-dessus du sien et elle s'intéresse à lui. Lorsqu'elle apprend qu'il va épouser son ennemie de collège Merle Kittridge (Janice Rule) le lendemain, Gillian utilise son chat, Pyewacket, pour jeter un sort d'amour sur Shep. Shep est immédiatement épris de Gillian et rompt avec Merle le matin de leur mariage. Gillian arrange une rencontre entre l'auteur Sidney Redlitch (Ernie Kovacs) et Shep dans l'espoir que Shep publie son prochain livre, sur les sorcières à New York. Lorsque Gillian apprend que son frère sorcier Nicky (Jack Lemmon) collabore avec Sidney, elle craint que Shep ne découvre sa véritable nature et son sort sur Shep. Lorsqu'elle découvre qu'elle est en fait en train de tomber amoureuse de Shep, quelque chose qui lui fera perdre ses pouvoirs, elle doit décider de ce qu'elle veut vraiment.