In 1944, na de zege van Franco, verhuizen de 12-jarige Ofelia en haar zwangere moeder naar een landelijk gebied in Noord-Spanje, waar ze bij Ofelia's strenge en keiharde stiefvader Kapitein Vidal komen wonen.
In de perfecte animatie-wereld heerst een tovenares-koningin totdat haar stiefzoon een vrouw gevonden zal hebben. Wanneer hij bij toeval in het bos een naïef meisje ontmoet, vraagt hij haar meteen ten huwelijk. Door toedoen van haar aanstaande schoonmoeder belandt zij echter in het hedendaagse New York, waar zij zich uiteraard geen raad weet. Maar dan ontmoet ze een aantrekkelijke jonge vader en haar wereld verandert ingrijpend. Haar droomprins is haar echter gevolgd, evenals een dienaar van de boosaardige koningin, die haar plannen in het honderd gooit. Dan besluit zij maar zelf een eind aan de voorgenomen idylle tussen haar stiefzoon en het bosmeisje te maken.
Na jaren in het buitenland te hebben verbleven keert de jonge Karl net voor Kerstmis terug naar zijn geboortedorp. Alle meisjes in het dorp zien in hem de ideale echtgenoot, maar Karl wil helemaal niet trouwen. Daarom geeft hij de meisjes drie onmogelijke opdrachten en belooft te trouwen met degene die ze tot een goed einde kan brengen. Het weesmeisje Marie wordt er door haar stiefmoeder op uit gestuurd om de opdrachten te vervullen, zodat Flora, haar verwende dochter, met Karl kan trouwen.