Pete's (Oakes Fegley) parents die in a car accident, so he lives with Elliot the dragon for six years before being found by Grace Meacham (Bryce Dallas Howard) and her soon-to-be-step daughter Natalie (Oona Laurence). They take Pete in to give him a real home. Elliot flies around town and sees this, knowing he is better off.
When Pete tries to show Elliot to Grace, Natalie, and Grace's father (Robert Redford), Elliot gets captured by Natalie's uncle Gavin (Karl Urban) and his men. Mr. Meacham helps the kids break Elliot out, leading to a climax on a bridge where Elliot wrecks a bridge by breathing fire to keep the police away. Grace and Jack (her fiance and Natalie's dad) fall through the bridge with Elliot, but the dragon saves them.
Pete and Elliot have to part ways when their cave is destroyed, and Elliot knows Pete must have a real family. Grace and Jack get married and adopt Pete, while Elliot finds his own family of dragons.