The four children Ben invites are: Carlos (Cameron Boyce), son of Cruella de Vil (Wendy Raquel Robinson); Jay (Booboo Stewart), son of Jafar (Maz Jobrani); Evie (Sofia Carson), daughter of the Evil Queen (Kathy Najimy); and Mal (Dove Cameron), daughter of Maleficent (Kristin Chenoweth). The quartet are causing mischief until they are summoned by Maleficent ("Rotten to the Core"), who tells them that they're invited to attend Auradon Prep, and orders them to steal the Fairy Godmother's wand so she can control both evil and good magic. Each of them has been raised according to their parents' whims: Carlos' mother uses him as a servant and has taught him to fear dogs, Jay is a thief who obtains things for his father's junk shop, Evie has an ingrained obsession with beauty and the domestic skills that can entice a husband, and Mal has been raised to inflict harm whenever possible.
At Auradon Prep, Carlos, Jay, Evie, and Mal are greeted by the Fairy Godmother (Melanie Paxson) the headmistress, as well as Ben and his "girlfriend" Princess Audrey (Sarah Jeffery): daughter of Aurora and Prince Phillip. During a campus tour, Mal and Ben seemingly connect while Dopey's son Doug (Zachary Gibson) is smitten with Evie. That night, Evie uses her mother's magic mirror to locate the wand at a nearby museum and the four attempt to steal it. Using her mother's spellbook, Mal activates Maleficent's spindle of the spinning wheel (an artifact in the museum) to put the guard to sleep. They see statues of their parents. Questioning her nature, Mal is convinced to follow through with the mission upon having a vision of Maleficent enticing her ("Evil Like Me"). Jay attempts to take the wand, but is repelled by a barrier and sets off an alarm. The group escape and reluctantly prepare to attend class.
Jay is soon recruited for the school's tourney (a fictional sport) team due to his natural physical aptitude. Carlos ends up befriending the school's mutt Dude and also joins the tourney team. Evie excels academically (often using information provided by the magic mirror) and becomes infatuated with Prince Chad (Jedidiah Goodacre): son of Cinderella and Prince Charming who convinces her to do his homework so he'll have time to see her. She learns from Doug that the Fairy Godmother will bless Ben at his coronation with her wand. Mal manipulates the Fairy Godmother's daughter Jane (Brenna D'Amico) by using magic to restyle her hair and saying only her mother's wand can do more. Fa Mulan and Li Shang's daughter Lonnie (Diane Doanne) is the first of many girls at the school who pay Mal to improve their hair too.
When Mal learns that Ben's girlfriend is the only person other than Ben and his family who will be seated near the wand during the coronation, she bakes a love potion into a chocolate chip cookie (obtaining a tear of human sadness, a critical ingredient, from an unwitting Lonnie, who cries when she learns that the villains are not loving parents) and convinces Ben to eat it by playing on his trust. Jay, Carlos and Ben work together to win the tourney game and Jay is named MVP. Ben declares his love for Mal, asking her to the coronation ("Did I Mention"). In retaliation, Audrey announces that Chad is her new boyfriend, much to Evie's dismay. Evie has to take a chemistry test without her mirror after Chad gets the teacher to confiscate it. She gets a B+, proving to herself that she possesses more than beauty. She shows Doug, who believed in her, and agrees to spend more time with him. Ben asked Mal on a date, taking her to a picnic by a lake. Ben goes for a swim alone, while Mal reflects on her feelings and her nature ("If Only"). When Ben disappears, Mal jumps in to find him despite her inability to swim. Ben surfaces and rescues Mal asking if she reciprocates his love. When Mal says she doesn't know what love feels like, Ben offers to teach her.
During Auradon Prep's family day, the four are permitted a video chat with their parents. Maleficent subtly warns them against failure and the conversation then devolves into embarrassing squabbling among the adults. Mal reiterates that they will be punished if they fail the mission, but it's clear that they are all reluctant because of the bonds they have formed ("If Only (Reprise)"). The visiting parents are welcomed ("Be Our Guest"). Ben shocks his parents by introducing Mal as his new girlfriend. Audrey's grandmother Queen Leah (Judith Maxie) berates Mal over being robbed of her daughter's childhood by Maleficent's curse. When Chad insults the quartet, a fight breaks out and the villains' children are ostracized. Jane joins in the mockery, a hurt Mal undoes her hair back to its previous style. The four are recommitted to their mission.
During the pre-coronation procession, Mal gives Ben a brownie with the love spell's antidote, feeling it would be unnecessarily cruel to keep him in love with her during Maleficent's invasion. He eats it prematurely, but then admits that he already knew about the love spell as it had been lifted by his swim in the Enchanted Lake during their first date. Believing she was motivated by her crush on him, he tells her that his feelings are genuine and gives her his signet ring. After the coronation blessing, Jane snatches the wand to give herself the magical makeover her mother won't allow. Unable to control the wand, Jane accidentally breaches the Isle of the Lost's barrier. Maleficent immediately flies away. Mal seizes the wand from Jane. Torn over what to do, she heeds Ben's advice to make her own choice and, recognizing that she and her friends have found happiness in their new lives in Auradon, leads them to decide to be good.
Maleficent arrives as Mal returns the wand to the Fairy Godmother, but Maleficent easily overpowers her, freezes everyone at the coronation except for herself and the four children, and takes the wand. Mal rebukes her mother and her evil ways, extolling the value of love and taking the wand from her. The four battle Maleficent who transforms into a dragon. Mal counteracts a spell that turns her mother into a tiny lizard. The Fairy Godmother unfreezes and explains that Maleficent's size is equivalent to the amount of love in her heart, and she can be freed from this form if she learns to love. She unfreezes the other guests. While Maleficent's lizard form is taken away, Mal apologizes to the Fairy Godmother for being a bad influence on Jane while telling her not to be hard on Jane for her actions at the coronation. Cruella, Jafar, and the Evil Queen have ambiguous reactions to seeing the coronation fireworks from the Isle of the Lost. Everyone in Auradon celebrates the coronation ("Set It Off"). Mal ends her narration glowing her eyes in a mischief directly to the audience and says "you didn't think this was the end of the story, did you?".