Ofelia (Ivana Baquero), una niña de 11 años amante de los cuentos, está viajando con su madre Carmen (Ariadna Gil), quien se halla en un avanzado estado de gestación, hacia un pequeño pueblo al norte de España, donde se encontrarán con el nuevo padrastro de Ofelia, el capitán de la Policía Armada; Vidal (Sergi López), encargado de eliminar los últimos indicios de la guerrilla republicana escondida en los montes después de la guerra civil en 1944.