เรื่องราวเริ่มต้นในโลกที่มีโทรลล์ที่มีความสุขซึ่งรักการร้องเพลงและการเต้นรำ พวกเขาใช้ชีวิตอย่างมีความสุขจนกระทั่ง เบอร์เกนส์ (Bergens) ผู้ที่มีความทุกข์ต้องการจับโทรลล์เพื่อให้ตัวเองมีความสุข โดยเชื่อว่าการกินโทรลล์จะทำให้พวกเขารู้สึกดี
พ็อพปี (Poppy, รับบทโดย Anna Kendrick) เจ้าหญิงของโทรลล์ที่สดใสและมองโลกในแง่ดี ต้องร่วมมือกับ แบรนช์ (Branch, รับบทโดย Justin Timberlake), โทรลล์ที่มีบุคลิกซึมเศร้าและไม่เชื่อในความสุขของชีวิต ทั้งสองต้องออกเดินทางเพื่อช่วยเพื่อนโทรลล์ที่ถูกจับไปโดยเบอร์เกนส์