Либретто написано М.И. Чайковским по одноимённой драме А.С. Пушкина. Литературный сюжет автор серьёзно изменил. Действие оперы перенесено в XVIII столетие, в эпоху Екатерины II.
Франц / Действие происходит после окончания Первой мировой войны. Немка Анна ежедневно приходит на могилу своего жениха Франца, погибшего во Франции. Однажды она встречает там француза Адриена, который тоже принес цветы на могилу ее любимого. Появление Адриена кардинально переворачивает жизнь героини…
Тролли / Отправляясь в увлекательное приключение, которое заведет ее далеко от привычного ей мира, Розочка (Анна Кендрик) объединяет усилия с самым мрачным троллем на свете по имени Цветан (Джастин Тимберлейк) для достижения успеха в своей смелой миссии спасти ее друзей из тисков зловещих бергенов и их лидера, короля Хрящ Старший. Невероятные приключения Розочки проверят ее силу, покажут ее истинную суть и бросят вызов ее способности ударяться в пение в любой момент.