Mary’s (Elle Fanning) seemingly dull Christmas is suddenly filled with excitement and adventure following the arrival of her Uncle Albert (Nathan Lane), who gives her a Nutcracker as a gift. Later that night, Mary dreams that the Nutcracker—called N.C. (Charlie Rowe)–comes to life and takes her on a wondrous journey. They discover that the Nazi-like Rat King (John Turturro) has usurped the Nutcracker’s kingdom.
When Mary and NC go to the top of the Christmas tree, they meet a fairy and as she begins to sing, NC looks at his hand, as it begins to turn Human. Worried about this he runs into the sleigh, but leaves his human hand revealed, and Mary sees this. Mary seeing this goes to NC and rubs his hand as we see that he is intact a human crying with tears of joy that he is human again.
In the climax of the film, the Nutcracker appears to have been killed, but Mary’s tears and declaration of love restore him to life and transforms him into a prince, his true form. The rats are all defeated and overthrown, but now Mary must reluctantly awaken from her dream. Before she’s fully awake, N.C. promises that they’ll meet again. After she does so, she goes to Uncle Albert’s workshop, where she meets his new young neighbor, who is the exact image of the Nutcracker Prince and who asks to be called N.C. The two become close friends, and the last shot of the film shows them ice skating together.