В канун Рождества в доме советника медицины Штальбаума готовятся к празднику, а дети — Фриц и Мари — с нетерпением ожидают подарков от крестного, старшего советника суда Дроссельмейера, который часто чинил часы в их доме. Мари мечтает о саде с озером и лебедями, тогда как Фриц предпочитает игрушки, которыми можно играть, считая, что создать настоящий сад крестный не сможет. Вечером у праздничной ёлки, украшенной множеством подарков, дети рассматривают презенты, среди которых выделяется замок, сделанный Дроссельмейером. Однако куклы в замке повторяют одни и те же движения, а попасть внутрь невозможно, поэтому интерес детей быстро угасает, в то время как мать проявляет любопытство к механизму. После того как подарки разобраны, Мари замечает Щелкунчика — куклу с необычной внешностью, которая кажется ей милой. Фриц ломает у неё несколько зубов, пытаясь расколоть орехи, после чего Мари берёт игрушку под свою опеку. На ночь дети убирают игрушки в стеклянный шкаф, и Мари, задержавшись у него, становится свидетелем битвы между семиголовым мышиным королём и армией кукол под командованием Щелкунчика. Куклы оказываются побеждёнными, и когда мышиный король приближается к Щелкунчику, Мари бросает в него туфельку.
Проснувшись с порезанным локтем от разбитого стекла шкафа, девочка рассказывает о ночном происшествии, но взрослые не верят ей. Крестный приносит отремонтированного Щелкунчика и рассказывает сказку о твёрдом орехе: у короля и королевы родилась прекрасная принцесса Пирлипат, но королева Мышильда, желая отомстить за погибших родственников, превратила её в уродливое существо. Успокоить принцессу могло лишь щёлканье орехов. Дроссельмейер вместе с придворным звездочётом, под угрозой смертной казни, вычисляют гороскоп принцессы и находят особый орех Кракатук и юношу, способного его расколоть. Множество принцев ломают зубы о этот орех, но племянник часовщика, расколов его, возвращает принцессе красоту. Однако он не завершает ритуал, поскольку Мышильда бросается ему под ноги, погибая, а юноша превращается в Щелкунчика. Король изгоняет Дроссельмейера, его племянника и звездочёта, но последний предсказывает, что Щелкунчик станет принцем и избавится от уродства, если победит мышиного короля и будет любим прекрасной девушкой.
Через неделю Мари выздоравливает и упрекает Дроссельмейера в бездействии, на что тот отвечает, что помощь может оказать только она, правящая светлым царством. Мышиный король начинает требовать у Мари сладости в обмен на безопасность Щелкунчика, а затем требует её книги и одежду. Девочка, боясь остаться без всего, признаётся, что боится, что король захочет загрызть её саму. В этот момент Щелкунчик оживает и обещает защитить её, если сможет получить саблю. Фриц помогает добыть оружие, и ночью Щелкунчик приходит к Мари с окровавленной саблей, свечой и семью золотыми коронами. Отдав трофеи девочке, он ведёт её в своё царство — Страну Сказок, куда они попадают через отцовскую лисью шубу. Мари помогает сестрам Щелкунчика с домашними делами и пытается растолочь карамель в золотой ступке, но внезапно просыпается в своей кровати.
Взрослые не верят её рассказу. Дроссельмейер заявляет, что короны — это подарок Мари на двухлетие и отказывается признать Щелкунчика племянником. Отец угрожает выбросить все куклы, и Мари боится говорить о своих приключениях. Однако однажды к их дому приходит племянник Дроссельмейера, который признаётся Мари, что перестал быть Щелкунчиком, и предлагает разделить с ней корону и трон Марципанового замка. По преданию, она и поныне является там королевой.