After a bike accident, the sweet-yet-nerdy 15-year-old Louise Miller (Lively) knocks on the door of a strange-looking house, hoping to use the phone. Instead, she meets a strange but welcoming woman, the seer Madame Serena (Rubinstein). Reading Louise's palm, Serena is stunned when she learns that Louise is a reincarnated witch and an old friend from one of her previous lives. A week later, on Louise's 16th birthday, her magical powers return through a powerful amulet that was lost in a former life, an item that Madame Serena says searches for its owner.
Now that Louise has the power to alter the world around her, she intends to make her dreams come true by casting a spell to win over Brad (Gauthier), the hottest guy in school, without earning his love. With Madame Serena's help, Louise uses her newfound powers to become the most popular girl in school, while also getting back at her harassing English teacher, Mr. Weaver (Berman), and the cheerleaders who never respected her. It is only after her popularity spell gets out of hand—which in turn causes her to abandon her equally unpopular, but loyal, best friend Polly (Ingber)—that Louise realizes believing in yourself is the true magic in life. In the end, she relinquishes up her powers by giving her amulet to Madame Serena, creating her own happy ending in the process.