Coco célèbre la tradition mexicaine du Dia de los Muertos (Jour des Morts), une fête au cours de laquelle tous les ancêtres sont rappelés. Miguel (voix d’Anthony Gonzalez) est un jeune garçon mexicain qui rêve de devenir musicien. Son héros est Ernesto De La Cruz (Benjamin Bratt), un musicien décédé dans un accident alors qu’il était sur scène. Mama Coco (Ana Ofelia Murguía) est l’arrière-grand-mère de Miguel, qui vit avec lui, ses parents et sa grand-mère ou Abuelita (Renee Victor). Le père de Coco, Hector (Gael García Bernal), était un musicien qui a quitté Coco et sa mère, Imelda (Alanna Ulbech), pour poursuivre sa carrière. Hector n’est jamais revenu, alors Imelda a lancé une entreprise de cordonnerie, qui est dans la famille depuis. Mais la musique a été interdite au foyer, et Abuelita applique rigoureusement cette interdiction.
Abuelita est très en colère lorsqu’elle découvre que Miguel a fabriqué sa propre guitare et a l’intention de participer à un concours de talents. Elle brise la guitare et Miguel s’enfuit vers la tombe de De La Cruz. À l’intérieur de la tombe, Miguel passe en quelque sorte au Pays des Morts, où il n’est ni tout à fait vivant ni tout à fait mort. Là, il rencontre ses ancêtres et apprend la véritable histoire de ce qui est arrivé à son arrière-arrière-grand-père Hector. Il découvre que le Pays des Morts n’est pas très différent du Pays des Vivants, avec les riches et les célèbres vivants (ou morts) parmi les pauvres et les oubliés. Miguel rencontre également son héros et découvre que tout n’est pas comme il le pensait.