In the 1880s, 11-year-old Félicie (Elle Fanning), a poor orphan girl who dreams of becoming a ballerina, but lacks formal training, runs away from her orphanage in rural Brittany with her best friend, Victor (Dane DeHaan), a young inventor. Together they go to beautiful Paris, but they soon become separated, and Victor becomes an office boy in Gustave Eiffel’s workshop. Félicie stumbles upon the celebrated school of the Paris Opera Ballet, where the guard catches her trespassing. She is rescued by a mysterious cleaner with a limp, Odette (Carly Rae Jepsen), who agrees to let Félicie stay with her until she gets on her feet. Odette works for Régine Le Haut (Julie Khaner), a wealthy restaurant owner. While helping Odette clean, Félicie spies Regine’s daughter, Camillle (Maddie Ziegler), practicing ballet. Camille sees Félicie, insults her, and throws Félicie’s music box out of the window, breaking it. As Félicie takes it to Victor for repair, she intercepts the postman who brings a letter from the Opera admitting Camille to the ballet school; in her anger, she takes the letter and decides to assume Camille’s identity to get into the Opera and fulfill her dream, while also getting back at Camille.
Odette agrees to mentor Félicie, who later learns that Odette was a former prima ballerina. Félicie finds her training, and making friends at the ballet school among her fellow-students, very difficult. Mérante (Terrence Scammell), the school’s exacting choreographer, announces that one of the girls from the class will be chosen to dance Clara in The Nutcracker. He dismisses the worst dancer in class each day. Félicie improves each day and narrowly avoids elimination, but a couple of days before the final elimination, her lie is discovered. Mérante decides to admit Camille into the class, while also letting Félicie stay. The night before the final elimination, she neglects training to go out on a date with Rudi, a handsome boy from the school, which upsets Odette. Victor sees Félicie with Rudi, and he and Félicie argue. The next day, Félicie is unable to perform well, and the part of Clara goes to Camille.
Félicie returns to her orphanage, having lost her spirit. She dreams about when her late mother gave her the music box. She decides to return to Paris to help Odette and apologize to Victor. While cleaning the stage, Félicie encounters Camille, and they engage in a dance battle that is witnessed by all the students, Odette and Mérante. Félicie does a fouetté across a row of stairs, while Camille cannot. Mérante approaches the two girls and asks them why they dance, to which Camille admits that she dances only because her mother tells her to, and says that Félicie should dance Clara. While speaking with Victor at the Eiffel Tower, she meets Régine, who tries to push Félicie off a statue, but Victor saves her with aid from Camille, and they arrive just in time for her performance. Félicie then goes on stage to perform.