Pendant la dictature franquiste, Olivia (l'adorable Ivana Baquero) est obligée d'emmenager avec sa mère malade et enceinte, Carmen (Ariadna Gil), chez son beau-père, l'horrible capitaine Vidal (avec Sergi López dans un extraordinaire rôle de salaud de la pire espèce).
Olivia est une petite fille plongée dans les contes de fées. Elle découvre dans le jardin un très vieux labyrinthe (le labyrinthe du faune d'après le titre original : El Laberinto del Fauno) où vit un être de légende : un faune, créature représentant la forêt. Ce dernier lui dévoile un secret et plusieurs tâches merveilleuses à accomplir.
En parallèle aux aventures d'Olivia, Guillermo Del Toro nous dévoile (une fois encore après le superbe l'Echine du Diable) un pan de son enfance. En effet, le cadre de ce conte de fée est la dictature franquiste et Sergi López se déchaîne dans des scènes d'une cruauté extrème qui contre-balancent devant l'innocence d'Ivana Baquero.
La première image (mais aussi la dernière, vous inquiétez pas ce n'est pas un spoiler) met tout de suite mal à l'aise. On voit en effet la petite Olivia morte. Cette image vous hante pendant tout le film et ce sentiment est renforçé devant la cruauté franquiste.
On sort de ce film avec tristesse devant la cruauté des hommes dans une époque qui n'est pas si lointaine et avec le sentiment que Del Toro est un réalisateur extraordinaire qui vous prend au tripes et ne vous les lâche pas avant le générique de fin.