Na Vespera do casamento, Fantaghiro (Alessandra) e seu amado príncipe Romualdo (Stuart), são atacados pelo feiticeiro Tarabas (Rogers), filho da bruxa Xellesia (Ursula) e o príncipe acaba sendo transformado em pedra. Para salvar a vida do seu amor, Fantaghiro sai em busca feiticeiro, o único que pode quebrar o encanto e durante sua busca encontra a pequena Smeralda (Elena) que também está em perigo e decide protege-la. Quando finalmente o bruxo aparece, impõe uma condição Fantaghiro terá que casar-se com ele para salvar a vida de Romualdo, o que ela promete aceitar, sem saber que a felicidade dela com o seu príncipe encantado está mais próxima do que possa parecer.