В книге рассказывается о семейном празднике. Наступает 24 декабря. В доме государственного медицинского советника Штальбаума все родные готовятся к Новому году. Ежегодно крестный семьи Дроссельмейер рассказывал невыдуманные истории детям по имени Фриц и Мари. Дети не знали, какие подарки приготовили родители. Девочка хотела иметь лебединый сад. А Фриц хотел обычные игрушки для мальчиков.
Вечером родители позвали детей в комнату с елкой. На елочке висели презенты как куклы, гусары и платье. Крестный подарил детям ручную шкатулку с мелодией. После разбора всех подарков девочка увидела Щелкунчика. Игрушка понравилась Мари. А ее брат разломал зубы Щелкунчика, стараясь расщелкать орешки. Перед сном дети поставили Щелкунчика в стеклянную полку. Фриц пошел спать, а его сестра осталась.
Наступила ночь, и Мари видела как семиголовый король мышей начал биться со Щелкунчиком и другими игрушками. Куклы проигрывали, и девочка бросила туфлю в мышиного короля. Мари потеряла сознание и очнулась только наутро со стеклом в руке. Она рассказала всем, о никто ей не поверил. Крестный отремонтировал Щелкунчика и принес его обратно. Также рассказал детям историю про твердый орех. В рассказе у королевской семьи родилась принцесса, и назвали ее Пирлипат. Королева мышей Мышильда за свою месть превратила малышку в уродца. Девочка научилась щелкать орехи и успокаивалась при помощи орехов.
Придворный советник Дроссельмейер по совету звездочета выяснил полный гороскоп маленькой принцессы. По гороскопу маленькой принцессе помог бы Кракатук. Кракатук должен расколоть только мальчик. Король приказал найти Кракатук. И вскоре орех нашли. Множество принцев разломали себе зубы об Кракатук. Король обещал отдать в жены принцессу за избавителя. Тут племяннику Дроссельмейера получилось расколоть орешек зубами. Принцесса съела орех и превратилась в красавицу. Обряд остался незаконченным. Поскольку Мышильда кинулась под ноги мальчика, и тот стал Щелкунчиком. А королева мышей умерла. Звездочет предсказал, если Щелкунчик одолеет мышиного короля, то станет принцем.
Спустя неделю Мари поправилась и стала упрекать Дроссельмейера за вину перед Щелкунчиком. Тот промолвил, что она сможет помочь Щелкунчику. Мышиный король просил у девочки конфеты и обещал не трогать игрушку. Родители Мари были обеспокоены о появлении в доме мышей. За жизнь Щелкунчика Мари дала все. Щелкунчик воскреснул и пообещал, что убьет семиголового короля. Мальчик дал ему саблю. В ту же ночь Щелкунчик пришел к девочке с кровавой саблей и коронами. Он отдал ей все и повел ее с собой в Сказочный мир. Знакомясь со всеми, Мари проснулась у себя в койке.
Наутро она поведала все родителям. Но ей также никто не поверил. Дроссельмейер рассказал, что подарил короны несколько лет назад. Также он рассказал, что у него никогда не было племянника Щелкунчика. Отец пригрозил, что выкинет все ее игрушки и куклы, если она не перестанет. Спустя некоторое время все забыли об истории Мари. В гости пришел племянник Дроссельмейера и наедине поведал Мари о Сказочной стране. И что он был Щелкунчиком. Также он предложил стать Мари его принцессой и жить в Сказочной стране. Она согласилась и стала королевой страны.