A boy becomes intrigued by a mysterious and quirky student named Stargirl and spends his time trying to know more about her.
Leo Borlock feels that nothing special ever happens in the town of Mica, Arizona, until he meets the mysterious new girl, Susan “Stargirl” Caraway. She becomes a good luck charm for the school’s losing football team with her songs, and Leo falls in love with her as she inspires him to be kinder and come out of his shell.
After Stargirl helps out a player on the opposing team, the home team loses and blames her. After she tries to explain herself, the other students turn on her and claim her good deeds are done out of selfishness. Stargirl tries to be normal and go by Susan, but later decides that it’s just not her and that she can’t change for the convenience of others, even as Leo suggested.
At the Winter Dance, Stargirl reconciles with Leo and gets him to sing to the whole student body. After the dance, Stargirl moves away and is never seen again, but she leaves an effect on the students to be kinder, and Leo is now a more extroverted person.
When Leo Borlock’s father passed away, he began to wear a porcupine tie in remembrance of him. When attending a new school, he was beaten up and his tie was cut up. Since then on his birthday, he would receive a new porcupine tie from a mystery person, but he would not wear them in public. In high school, Leo plays trumpet in the marching band and helps his friend Kevin Singh, a member of the A.V. club, host a show called Hot Seat. One day, a free-spirited girl named Stargirl Caraway arrives and quickly makes an impression on Leo when she sings “Happy Birthday” to him on a ukulele in front of the school. Later, while their football team the Mudfrogs, who are notorious for their losing streak, are playing a game, Stargirl comes out and performs a song (“Be True to Your School”) that energizes them and causes them to almost get their first win. Kevin suggests to Leo to invite her onto his show, but she politely refuses.
Stargirl becomes a good luck charm for the football team when she sings (“We Got the Beat”). She begins hanging out with Leo in an attempt to get him to come out of his shell. He converses with Archie, the owner of the local paleontologist camp, who reveals that Stargirl, much like Leo, lives with her single mother and that she was homeschooled much of her life. She is well aware of Leo after learning about him through Archie. Later, Stargirl tries out for the Speech regionals against Kevin and wins with her unusual speech on rats. While anonymously returning a bike to a boy who was in the hospital, Leo mentions the ties, but Stargirl denies any knowledge of it. When he asks how she knew so much about him, she tells him that she has “an office”. Stargirl gives a song suggestion to Leo (“Thirteen”) and as he leaves, kisses him for the first time. They then spend the semester dating.
During the big game, one of the opposing players is severely injured. Stargirl runs over to check on him and rides with him to the hospital, confusing everyone. Afterward, Leo tells Stargirl that everyone was demoralized and that they lost, but they hang out together anyway. The next day, everyone is disappointed with Stargirl. Leo meets up with Kevin and the rest of his friends who are also upset, but forgive him, as well as apologize for being distant with him. Kevin decides to bring Stargirl onto his show so that she can explain herself. Stargirl reveals that her real name is Susan and that she chose Stargirl because everyone is made of stardust. The audience of students quickly turns on her when a student named Hillari scolds her for inconsiderately returning a bike to her brother who was permanently injured in an accident while riding it. Stargirl runs off in tears.
Leo tries talking to Stargirl and suggests being like everyone else, much to her consternation. Later, Stargirl starts calling herself Susan and wearing clothes that are more like those of her classmates. She and Leo head to the speech regionals where Leo asks her to the Winter Dance and she accepts. Stargirl is about to give a speech on internet privacy, but quickly shifts to a speech on flowers which wins her first place. Despite it being the very first trophy won at the school, nobody pays any attention to it. Stargirl decides that acting as Susan is to act against who she is, and she abandons the idea. Leo begins to feel awful, but gets encouragement from his mother and Kevin.
Leo unexpectedly gets Stargirl’s collection of records, a record player (he previously said he did not have one) and an invite for a “big surprise” at the dance. Leo shows up and is pleased to see Stargirl there. She reveals her surprise: him singing in front of all the attendees. After some reluctance, Leo gets up and performs his and his father’s favorite song (“Just What I Needed”), leading everyone to dance together in the courtyard. Afterwards, Stargirl apologizes to Hillari and disappears from the party. Leo discovers that Stargirl moved away, but that her influence had affected the school in a positive way with them eventually winning more trophies. Despite all this, Leo continued to get ties from Stargirl and Archie reveals her “office”, a small shed at the camp full of information of the townsfolk. Even after graduating and attending college, Leo never forgets what Stargirl did for him (“Give Me Love (Give Me Peace on Earth)”).
In a post-credits scene, at an unspecified time, Stargirl sings a song to Leo (“Today and Tomorrow”).
The film opens with 14-year-old Leo Borlock (Graham Verchere) practicing with the marching band on the football field at school, when he stops dead in his tracks as he sees a mysterious girl standing in the distance. It is the first time he is seeing her, but before he continues with her, he starts with his own backstory.
When Leo was young, his father passed away. He would wear a porcupine tie in his memory since that tie belonged to him. He and his mother Gloria (Darby Stanchfield) moved to Mica, Arizona, where he claims nothing ever happened. Leo would wear the tie, even when it got him bullied. Soon, every year on his birthday, he would find a new porcupine tie delivered to him as a gift, but he never knew where it came from. In the present day, Leo is friends with Kevin Singh (Karan Brar), Tess Reid (Annacheska Brown), and Benny (Collin Blackford), who all host the school radio show, “The Hot Seat”.
Leo returns to the mysterious new girl, Stargirl Caraway (Grace VanderWaal), who attends his class for the first time that day. During lunch, Stargirl approaches Leo with her ukulele and sings “Happy Birthday” to him before leaving. Leo is clearly infatuated. He later helps Kevin with a “Hot Seat” recording, but their guest is too boring. Leo follows Stargirl after school but then retreats before going any further.
Later in the week, Leo is with the marching band during the season’s first football game. Their team, the Mudfrogs, have an unfortunate losing streak. Stargirl goes out onto the field with her ukulele and sings “Be True To Your School”, which rouses the team’s spirit and helps them score a win.
Leo goes to the local paleontologist camp where he talks to the manager, Archie Brubaker (Giancarlo Esposito), about Stargirl. Archie tells him that Stargirl was homeschooled by her single mother, and she frequently met with Archie whenever she was curious about things in town. He knows Leo has a crush on her.
Stargirl is seen as a good luck charm for helping the team win, and she gains quick popularity. Kevin asks Leo to ask her if she would like to be a guest on “Hot Seat.” After school, Leo goes by the camp again where Stargirl finds him and talks to him. He makes the offer for “Hot Seat”, but she politely declines.
At the next game, Stargirl sings “We Got The Beat” and helps the Mudfrogs win again. During school, she signs up for a speech competition, which Kevin is also up for, and he is none too happy about this in addition to Stargirl turning down “Hot Seat”.
Leo starts hanging out with Stargirl around town, where they learn more about each other’s backstories and upbringings. They walk toward the Grand Canyon where Stargirl shares her personal philosophy with Leo on being who she wants to be, and encouraging him to scream to let out whatever he is feeling.
The students deliver their speeches for the competition. Stargirl wins her spot by giving a speech on rats. Later, Leo joins her as she brings a bike to the home of a boy who recently got into an accident. Leo realizes Stargirl has been delivering his ties on his birthdays, but she coyly denies it. They go to her house where Leo meets her mother, Ana (Sara Arrington). Stargirl takes him up to her room where she shows him her record collection and recommends the song “Thirteen” by the band Big Star. As Leo leaves, Stargirl kisses him for the first time. They later start hanging out more as a couple.
During another game, another player from the opposing team, Ron Kovac (Troy Brookins), gets seriously injured. Stargirl runs to his aid and rides in the ambulance with him, surprising and confusing everyone. Leo later finds her and tells her that they lost the game, but she defends her position by saying that nobody else was helping Ron. He stays with her and they hang out again.
The students now hate Stargirl for their loss. Leo convinces her to go on “Hot Seat” to explain herself. While there, she admits her real name is Susan and that she just wanted to do good deeds for others. The other students are still mad at her, and one student, Hillary Kimble (Shelby Simmons), criticizes Stargirl for her “good deeds”, as she reveals that the boy who received the bike was Hillary’s brother who was injured from riding the bike and will never ride again. Hurt, Stargirl runs away crying. Leo later finds her after school and tries to help her, but she sees that he only wants her to be like everybody else and it hurts her more.
Stargirl returns to school and starts going by Susan. Leo joins her as their teacher takes them to the speech competition. She starts to do a safe speech as Susan on internet privacy, but then realizes it’s not who she is and delivers the more empowered and eccentric speech as Stargirl, which helps her win. They return to school and place her trophy in the previously empty trophy case. The other students continue to pass Leo and Stargirl like it’s no big deal. Stargirl tells Leo that she can’t pretend to be “normal” like everyone else and then rejects his offer to join him for the upcoming Winter Dance.
Leo feels bad about how he made Stargirl feel, but he receives reassurance from his mom, as well as Kevin, who acknowledges that Stargirl was just trying to help others the same way he helped Leo when they first met as children. Leo later receives Stargirl’s record collection, plus a record player and a note telling him about a surprise at the dance.
Leo attends the dance alone and is happy to see Stargirl there. She reveals the surprise: the band has called Leo to go up and sing his favorite song, “Just What I Needed” by The Cars. He gets the whole student body to dance and party along with him. At the end of the song, Stargirl finds Hillary glaring at her. She apologizes to Hillary, but after getting no response, Stargirl leaves and never comes back. That’s the last time that Leo sees her.
Leo later finds out that Stargirl moved away to somewhere unknown. The whole school feels an effect from her actions, with the kids inspired to be kinder and help each other out. The other students make up stories about Stargirl, to the point where people wonder if she was even real. Leo then finds that Stargirl is still sending him ties. He also finds an office at Archie’s that Stargirl used to get info on the townsfolk, which led her to do her good deeds. Leo walks to the Grand Canyon and lets out his scream as she inspired him to. The last shot is the school’s trophy case now full of awards, with Stargirl’s trophy still resting right in the middle.
After the credits, there is a scene of Stargirl singing to Leo when they used to hang out.