I Troll sono piccole creature che vivono in uno stato quasi perpetuo di felicità, cantando, ballando ed abbracciandosi tutto il giorno. Tuttavia vengono scoperti dai Bergen, enormi creature che pensano di non poter provare allegria, e che si convincono di poterla ottenere soltanto mangiando un Troll; Re Peppy, sovrano dei Troll, riesce però a scappare col suo popolo attraverso dei tunnel sotterranei il giorno in cui il principe dei Bergen, Gristle, avrebbe dovuto cibarsi del suo primo Troll. Il Re Gristle Senior, furioso, bandisce la perfida Chef, che era responsabile della preparazione dei Troll.
Vent'anni dopo Poppy, l'euforica e raggiante figlia ventitreenne di Re Peppy, organizza una grande festa per celebrare l'anniversario della fuga dei Troll, nonostante i timori e gli avvertimenti del cupo e paranoico venticinquenne Branch, secondo cui il rumore dei festeggiamenti avrebbe attirato i Bergen. Effettivamente Chef, da lontano, nota i fuochi d'artificio e, precipitandosi sul luogo illuminato dalla festa, cattura un certo numero di Troll. Poppy, come altri, riesce a nascondersi e a non farsi catturare, ma scopre che nessuno tra i Troll rimasti ha il coraggio di avventurarsi nella città dei Bergen per salvare i loro amici. Riesce comunque a convincere il riluttante Branch, e insieme si dirigono verso la città dei Bergen. Grazie all'aiuto di una simpatica nuvola antropomorfa, Poppy e Branch riescono ad entrare nella città. Lì conoscono una sguattera, Brigida, che accetta di aiutarli in cambio di un appuntamento con il principe, di cui è innamorata. Sotto la falsa identità di Lady Glitter Brillantina, Brigida incontra il principe il quale, stando insieme alla nuova amica, si sente più contento. Tutti i Troll vengono liberati. Tutti tranne uno: Creek, che tutti pensano sia stato mangiato dal principe.
Inaspettatamente, scoprono che è vivo, e decidono di salvarlo; purtroppo, però, così facendo cadono in un trappola architettata da Chef e dal loro amico, che si era venduto ai Bergen. Diventano tutti tristi ma Branch canta per Poppy per rallegrarla e (attraverso la canzone) confessa il suo amore per lei, sorprendendo Poppy che lo ricambia e insieme ripristinano i colori di tutti i Troll. Proprio prima di essere serviti, i Troll vengono salvati da Brigida che ha intenzione di sacrificarsi per i Troll. Insieme agli altri Troll, Poppy rivela ai Bergen che Brigida è Lady Glitter Brillantina e che, per essere felice, non è necessario mangiare i Troll; infatti il sentimento che Brigida e il principe Gristle provano vicendevolmente, fa comprendere ai Bergen che la felicità non devi metterla dentro di te ma è già lì, basta solo che qualcuno ti aiuti a trovarla. I Troll invitano i Bergen a cantare e ballare con loro, facendoli sentire felici. Chef vuole uccidere tutti i Troll ma viene buttata fuori dalla città, sopra un carrello portavivande, insieme al Troll traditore, Creek. I Troll e i Bergen accettano di vivere in pace, e Poppy è incoronata regina dei Troll. Sul rinnovato albero dei Troll, Poppy e Branch condividono un abbraccio.
Nella scena dopo la canzone finale, durante i titoli di coda, il carrello portavivande su cui si trovano Chef e Creek si ferma su una collina in mezzo al nulla. Chef cerca di mangiare Creek, ma la collina si apre per rivelare la bocca di un essere gigantesco che li ingoia entrambi.