Comece por cozer o bacalhau. Após cozido, desfie-o, retirando peles e espinhas.
Coza as batatas e esmague-as, juntando o leite, a manteiga, noz-moscada, sal e pimenta, até obter um puré liso.
Refogue a cebola e o alho em azeite. Adicione os espinafres e deixe cozinhar até murcharem. Incorpore o bacalhau desfiado e misture bem.
Num tabuleiro de ir ao forno, coloque uma camada de puré de batata, a mistura de bacalhau e espinafres, e cubra com o restante puré.
Pincele com ovo batido e leve ao forno pré-aquecido a 180ºC durante cerca de 30 minutos.