Las habitaciones, los pasillos, los rincones, las paredes, las escaleras, las lámparas, las cortinas, las ventanas, las camas, los espejos, los armarios, las estanterías, los libros, las puertas de una casa esconden historias. Las casas están vivas. En su interior laten un montón de corazones. No es de extrañar que una habitación vacía provoque una extraña sensación: alguien vivió en esas cuatro paredes. Si las casas hablasen… Y eso es lo que ocurre en Hechizo. Una casa de una calle de Londres empieza a contar una historia. Tiene una voz. La cámara entra por su puerta, el número 99, y nos hace recorrer los aposentos. Así conocemos a uno de los protagonistas: un general anciano y desencantado, Roland Dane (David Niven), que ha regresado al hogar de su infancia. Y allí quiere permanecer hasta su muerte, junto al fiel mayordomo de la familia (Leo G. Carroll). Aunque son tiempos volubles, tiempos de guerra, la Segunda Guerra Mundial no deja tregua. Corre el peligro de perder la casa, los dueños del terreno quieren demolerla. Roland está solo, como un fantasma permanece en su cuarto, a oscuras, y entre sueños llama a Lark, una mujer a la que ama, y esta le responde. No quiere más problemas, solo tranquilidad. Vivir entre voces del pasado.
Irving Reis arrastra al espectador por una elegante y romántica historia de amor doble en Hechizo donde se une el pasado con el presente. La soledad de Roland se romperá con una visita inesperada: su sobrina Grizel Dane (Evelyn Keyes). Esta viene de EEUU donde la rompieron el corazón, conduce ambulancias para el ejército y le pide a su tío una habitación para vivir mientras trabaja en Londres. Otra llegada inesperada cambia el rumbo de la historia y activa la memoria del pasado. Grizel conoce casualmente a un joven piloto, Pax (Farley Granger), que ha sufrido quemaduras en las manos al que traslada al hospital en su ambulancia. Poco despuésdicho joven visita la casa del general, pues hizo una promesa a Lark, su tía. Esta le hizo prometer que si se pasaba por Londres visitara la casa de sus recuerdos infantiles y juveniles.
Ambos se enamoran desde el primer momento, pero Grizel tiene miedo. El general Roland es testigo de ese enamoramiento y no quiere de ningún modo que su sobrina cometa el error de no vivir el presente, de no lanzarse al amor, quiere que termine en los brazos de Pax. Desea una historia de amor feliz, y no una imposible como la que él vivió con la mujer de su vida, Lark (Teresa Wright).