On New Year's Eve, juniors Troy Bolton (Zac Efron) and Gabriella Montez (Vanessa Hudgens) meet at a party while both teens are at a ski lodge during winter break. At the party, the two are called upon to sing karaoke together ("Start of Something New"). They find that they have a connection and decide to exchange numbers before going their separate ways.
One week after Christmas break, Troy sees Gabriella in his homeroom, and she explains that she just moved to Albuquerque, New Mexico and transferred to East High School over break. Troy shows Gabriella around the school, and they pause in front of the sign-up sheet for the winter musical auditions. Drama Club president Sharpay Evans (Ashley Tisdale) arrives, assuming that Gabriella is interested in auditioning. Wanting to eliminate competition, Sharpay investigates the new girl and has the scholastic decathlon captain, Taylor McKessie (Monique Coleman), find out about Gabriella's past academic achievements, resulting with Taylor and Gabriella becoming great friends.
During basketball practice, Troy has trouble focusing because his thoughts are on Gabriella and the idea that he might enjoy singing more than basketball ("Get'cha Head in the Game"). Gabriella and Troy go to the musical auditions where Sharpay and her twin brother Ryan Evans (Lucas Grabeel) perform ("What I've Been Looking For”), but both are too shy to audition. When Gabriella finally gains the confidence to step forward, Troy offers to sing with her, but Ms. Darbus (Alyson Reed) tells them that they are too late. After Mrs. Darbus attempts to leave, Kelsi Nielsen (Olesya Rulin), the musical's composer, trips and drops her items. Troy and Gabriella rush to help her, and they sing together as Kelsi plays piano ("What I've Been Looking For (Reprise)"). Ms. Darbus overhears them and gives them a callback audition.
When the callback list is posted, Sharpay discovers that she has competition for the lead in the musical, and the rest of the Wildcats are shocked that Troy and Gabriella have auditioned. Other students confess their own secret passions and talents ("Stick to the Status Quo"), alarming both Taylor and Troy's best friend Chad Danforth (Corbin Bleu). Since Gabriella has agreed to join the scholastic decathlon team, both Taylor and Chad want their teammates to focus on their upcoming competitions rather than the musical. Troy is then tricked into saying that Gabriella is not important while she watches through a wi-fi link that the scholastic decathlon team had set up. Gabriella gets extremely upset by his betrayal ("When There Was Me and You") and decides not to audition for the musical.
Troy is left confused as to why Gabriella did not want to audition anymore. Realizing their mistake, Chad and the basketball team tell Troy what happened and offer to support him in callbacks. Troy goes to Gabriella's house and they reconcile.
After overhearing Gabriella and Troy practicing, Sharpay has Ms. Darbus change the callback time to coincide with both the basketball championship and the scholastic decathlon to interfere with Gabriella and Troy's participation. Kelsi overhears the conversation and the basketball team and the decathlon teamwork together to come up with a plan. On the day of the competitions, Taylor and Gabriella use the school's computers to delay the championship and the decathlon. Troy and Gabriella rush to the auditorium, and Sharpay and Ryan finish performing their song ("Bop to the Top"), confident that their plan worked. After Gabriella and Troy audition ("Breaking Free"), Ms. Darbus gives the two the lead roles, making Sharpay and Ryan understudies.
Troy and Gabriella both win their respective competitions, and the entire school gathers in the gym to celebrate ("We're All In This Together"). Chad asks Taylor out, and Sharpay makes peace with Gabriella.
In a post-credits scene, Zeke (Chris Warren Jr.) paces alone in the gym as Sharpay runs in declaring the cookies she rejected from him earlier "genius". She then hugs him and he says he will make her a crème brûlée.