Ofélia, uma sonhadora com 10 anos, muda-se para Navarra com a sua mãe, grávida e frágil para conhecer pessoalmente o seu novo padrasto, Capitão Vidal, um oficial fascista com ordens para eliminar os rebeldes do território remoto. Capitão Vidal instala-se numa velha fábrica. Arrogante e intimidador, não faz qualquer esforço para se aproximar da enteada. Sozinha, a criança, em busca de companhia, recorre a Mercedes, uma jovem cozinheira que trabalha para as tropas de Vidal. Ofélia, fascinada por contos de fadas, descobre um grandioso labirinto a desmoronar-se atrás da fábrica. No centro do labirinto ela conhece Pan, um velho brincalhão que diz saber a verdadeira identidade e o destino secreto de Ofélia. Ela é uma princesa, a filha desaparecida do Rei das Fadas. Pan oferece-lhe a oportunidade de voltar ao subterrâneo e governar o reino mágico do pai. Mas primeiro, ela deve executar três tarefas antes da lua cheia.

Entre os espectadores do espetáculo de Pina Bausch no Café Müller estão dois homens, sentados lado a lado mas que não se conhecem: Benigno (Javier Cámara), um jovem enfermeiro, e Marco (Darío Grandinetti), um escritor de meia-idade. A beleza da peça faz Marco romper em lágrimas. Benigno observa. Ele gostaria de mostrar que também está emocionado, mas não se atreve. Meses depois eles se encontrarão novamente: Lydia (Rosario Flores), a noiva de Marco, uma toureira, é atingida durante uma apresentação e fica em coma, internada no mesmo hospital onde Benigno cuida de outra paciente em coma, uma bailarina chamada Alicia (Leonor Watling). Essa será a oportunidade para que nasça uma grande amizade entre Benigno e Marco.

Carlos, um garoto de 12 anos, perde seu pai e é deixado no orfanato Santa Luzia, em plena Guerra Civil Espanhola. Lá, aprende a conviver com adultos agressivos e crianças perturbadas pela atmosfera do lugar. O espírito de um ex-aluno clama por vingança e instiga Carlos a descobrir seu assassino.