Da tempi immemorabili una guerra dilania due regni confinanti. Per porvi fine si decide di far sfidare due cavalieri a duello: il vincitore dara' la vittoria anche al suo Re. Non avendo figli maschi, il Re Padre (Mario Adorf) deve far partecipare al duello sua figlia Fantaghiro' (Alessandra Martines), sotto il falso nome di Conte Valdoca. Fantaghiro' conosce il suo sfidante, il Principe Romualdo (Kim Rossi Stuart) e se ne innamora e, quando combattendo contro di lui ha la meglio, grazie anche all'aiuto della Strega Bianca (Angela Molina), si rifiuta di ucciderlo. L'amore tra i due ragazzi spinge il Re Padre ad abdicare in favore di Fantaghiro', che sposera' Romualdo. Tutto e' pronto per le nozze, ma arriva la terribile notizia che il Re Padre e' caduto prigioniero del Re Nero; in realta' egli e' prigioniero della perfida Strega Nera (Brigitte Nielsen). Romualdo parte con l'esercito per liberare il Re, ma la Strega Nera, fingendosi Fantaghiro', lo cattura e lo porta nel suo castello. Fantaghiro' decide di raggiungere Romualdo e sfida in duello il campione del Re Nero, per evitare una terribile guerra. Il Re accetta, ma ben presto la ragazza scopre che in realta' il campione del Re e' proprio Romualdo, divenuto cattivo e completamente immemore del suo passato e del suo amore per Fantaghiro'...