In the opening scene, a young woman named Mary (Amanda Seyfried) brings her baby to the steps of the Lambert Home For Boys in London. She leaves the boy with a note and a necklace of a pan flute. Mary kisses her baby, Peter, and tells him she loves him before leaving.
12 years later.
Peter (Levi Miller) is still living at the Lambert Home, and he has only one friend, Nibs (Lewis MacDougall). Their time is made miserable by the cruel nun Mother Barnabas (Kathy Burke). Peter figures out that Barnabas is hoarding extra food for herself, so he and Nibs break into her office and uncover her stash of extra food and coins. The boys go into her private records and find Peter's file, which contains a letter from Mary that reaffirms her love for her son and says they will see each other again, in this world or another.
While the boys sleep at night, some are snatched up into the air by men coming down on tethers. They were summoned by Barnabas, who raised a pirate flag at the top of the orphanage. Peter sees Nibs being grabbed, so he runs to save his friend. Peter ends up being taken after Barnabas kicks him into the path of one of the pirates. The boys are out on the ship, but Nibs jumps off and lands on the roof. As the ship flies toward the sky, Royal Army planes fly after the ship and shoot at it. The planes retreat once the ship rises above the clouds.
Peter ties himself to the ship to keep from falling out. He floats through space and touches Saturn before getting yanked back to the ship. It flies all the way to Neverland. There, the boys are brought before a large quarry where the workers are singing "Smells Like Teen Spirit". Atop another floating ship emerges the dreaded pirate Blackbeard (Hugh Jackman). He tells the boys they are digging for fairy dust in the mines.
While working, Peter meets James Hook (Garrett Hedlund), an older man and fellow slave worker that's been there as long as he can remember, and that's why he's grumpy and disillusioned. Peter then finds a rock of fairy dust that an older man swipes from him. Peter argues with the man and insults his cohorts, leading to Blackbeard making Peter walk the plank along with two other boys that misbehaved. Blackbeard kicks Peter off the plank, but as he falls, Peter suddenly starts flying, to everyone's surprise, until he drops to the ground.
Peter wakes up in a room in Blackbeard's ship. The pirate walks in and tells Peter of a prophet that states that a boy who can fly will fight Blackbeard and kill him. Peter says he doesn't believe in bedtime stories.
Hook gets Peter and his accomplice Mr. Smee (Adeel Akhtar) to escape and try to make their way to one of Blackbeard's boats, on the condition that Hook helps Peter find his mother. They ride a cart up to the floating boats, only to get pulled back by Blackbeard's right hand man Bishop (Nonso Anozie). Peter cuts the wire and sends himself, Hook, and Smee toward one of the boats.
The three ride the boat into the forest to find the natives. They are caught by a group of the natives, led by Princess Tiger Lily (Rooney Mara). Hook and Smee are almost executed until the Chief (Jack Charles) notices the pan flute around Peter's neck. Because the pan is the symbol of their tribe, the natives bow to Peter. Tiger Lily explains to Peter that his mother fell in love with the fairy prince, which made Blackbeard jealous, though it also means that Peter is part fairy. The natives helped bring Mary to the fairy kingdom to protect her, so that's where Peter can find her. Now, they just want to prove that Peter really is her son, so he needs to fly. However, Peter is unable to recreate the same flight as before, causing him to lose hope.
Blackbeard and his men attack the natives after Smee cowardly gives away the location of the heroes. The pirates battle the natives, and Blackbeard ends up killing the Chief. He finds Peter and reveals that he killed Mary. Peter escapes with Hook and Tiger Lily.
The three head toward the fairy kingdom on a raft. Peter is devastated to learn that Tiger Lily lied to him about his mother. Suddenly, a large crocodile attacks the group. Peter falls into the water and is dragged to the bottom by the crocodile, until a trio of mermaids (all played by Cara Delevignge) send the croc away and bring Peter back up to the surface. Peter then has a vision of his mother as a warrior, leading the natives and fairies to safety from Blackbeard. He sees Mary fighting Blackbeard until the pirate ran her through with his sword, and he screamed in regret and sorrow. Later, Hook leaves the two because he doesn't want to be there when they lose the battle.
Peter and Tiger Lily locate the fairy kingdom, but unfortunately, Blackbeard had followed them. He takes the pan necklace from Peter and uses it as the key to enter the fairy kingdom. He ties the heroes to the ship as they enter. The fairies fly around the good guys, and Peter befriends one such fairy named Tinker Bell. The heroes break free and fight the pirates, with Hook returning on his own ship to join the battle. The three fight the pirates, with Hook taking on Bishop while Tiger Lily fights Blackbeard. Smee escapes on a boat. Hook's ship tilts over, causing Bishop to fall to his death in the abyss, while Hook hangs on. Realizing he won't make it, he lets go. Blackbeard taunts Peter until the boy jumps and flies to rescue Hook. After doing so, the fairies help fight the pirates, sending them off the ships to their doom. The fairies then swarm all over Blackbeard and cause his ship to crash into a wall, plunging it into the abyss, taking Blackbeard with it.
A vision of Mary appears to Peter. He still doesn't believe he is the hero that was prophecized, but his mother disagrees and restates her love for her son, calling him her little "Peter Pan." As she disappears, Tiger Lily hugs Peter.
The heroes return to London on Hook's new ship, the Jolly Roger, to gather Nibs and the rest of the orphaned boys to become the new Lost Boys, to the anger of Barnabas. As they fly back to Neverland, Peter asks Hook if they'll always be friends. Hook responds: "Sure. What could go wrong?"