Der Basketballer Troy Bolton ist mit seinen Eltern im Winterurlaub. Am Silvesterabend geht er zu einer Party, auf der er mit Gabriella Montez an einem Karaoke-Wettbewerb teilnehmen muss.Sie singen zusammen (unfreiwillig) das Lied "Start of Something New".Nach dem Auftritt tauschen die Beiden ihre Handynummern aus, verlieren sich jedoch aus den Augen.
Als die Schule wieder anfängt, treffen sich Troy und Gabriella wieder, weil Gabriellas Mutter versetzt wurde und sie nun die selbe Schule besuchen muss. Troy ist der Kapitän des Basketballteams "Wildcats" der Schule, das die Chance auf die Meisterschaft hat. Traditionell wird in der Schule ein Wintermusical aufgeführt, dessen Castings bald anstehen. Beide überlegen, ob sie teilnehmen sollen, entscheiden sich jedoch dagegen. Trotzdem verfolgt Troy das Casting als Zuschauer, versteckt sich jedoch, da er nicht möchte, dass seine Freunde es erfahren. Auch Gabriella ist beim Casting. Währenddessen singen die Geschwister Sharpay und Ryan das Lied "What I’ve Been Looking For" und scheinen die Rollen auch zu bekommen, da keine Konkurrenz im Partnercasting antritt. Kurz vor Schluss meldet sich Gabriella, so dass Troy ihr auf die Bühne nachfolgt. Die Kunstlehrerin Mrs. Darbus, meint jedoch, dass das Casting bereits beendet sei. Obwohl sie den Raum bereits verlässt, singen die beiden auf dem Klavier begleitet von der Komponistin des Musicals, Kelsi, das gleiche Lied und überzeugen so Mrs. Darbus sie in den Recall zu lassen.
Als die Schule erfährt das der Kapitän des Basketballteams etwas Neues ausprobiert, laufen die Dinge aus dem Ruder. Troys bester Freund, Chad, befürchtet, dass das Basketballteam auseinander bricht, und auch Gabriellas Freundin Taylor McKessie, welche den Wissenschaftsclub leitet, befürchtet Schaden für ihr Team, wenn Gabriella an der Musical-Produktion teilnimmt. So beschließen Chad und Taylor, Gabriella und Troy gegeneinander auszuspielen, so dass sie ihre Teilnahme aufgeben. Chad bringt Troy dazu, das Singen vor seinen Teamgefährten als unwichtig darzustellen und sich damit gegen Gabriella auszusprechen. Dies wird per Webcam auf Taylors Laptop übertragen, die dafür sorgt, dass Gabriella es mitbekommt. Daraufhin erklärt diese dem ahnungslosen Troy, dass sie nicht mit ihm singen wird.
Doch es kommt anders als die beiden es sich gewünscht haben, denn Troy zeigt keinerlei Motivation mehr für das Basketballspiel, während Gabriella sich auch nicht für den akademischen Zehnkampf, bei dem die Wissenschaftsgruppe teilnehmen will, vorbereitet. So entschließen sie sich, die Wahrheit zu sagen. Gabriella jedoch ist weiterhin verletzt, bis Troy ihr Haus aufsucht und, als Gabriella durch ihre Mutter ausrichten lässt, dass sie zu tun hätte, auf ihren Balkon klettert und nochmal "Start of Something New" singt.
Nun wollen beide wieder am Musical teilnehmen und eigentlich könnte nichts mehr schief gehen, wenn da nicht Sharpay wäre: Sie sieht ihre Chancen auf die diesjährige Hauptrolle schwinden und beschließt, alles daran zu setzen, dass Troy und Gabriella den Recall nicht besuchen können. Nach einer kurzen Unterhaltung mit Mrs. Darbus legt diese den Termin für den Recall zeitgleich zu dem Basketballendspiel und dem akademischen Zehnkampf. Doch Sharpay hat die Rechnung ohne Gabriellas und Troys Freunde gemacht: Taylor manipuliert die Anzeigetafel beim Basketballspiel, sodass die Schiedsrichter die Austragung unterbrechen und, nachdem Gabriella eine Disziplin im Zehnkampf gemeistert hat, mischen sie eine Art Stinkbombe zusammen, sodass alle den Raum verlassen müssen.
Und so finden sich die beiden wieder auf der Bühne und singen gemeinsam "Breaking Free". Gabriellas und Troys Freunde kommen in Scharen und sind begeistert. Sharpay und Ryan, die zuvor "Bop to the Top" gesungen haben, schaffen es nicht, sich gegen Gabriella und Troy durchzusetzen, weshalb Troy und Gabriella die Rollen im Musical erhalten. Schließlich kann das Problem mit der Anzeigetafel wie durch ein Wunder behoben werden, das Spiel wird fortgeführt und die Wildcats gewinnen es. Auch Gabriellas Wissenschaftsteam gewinnt. Troy und Gabriella hätten sich fast geküsst, aber dann platzt Chad dazwischen und Taylor hat ein Date mit Chad. Der Film endet in einer gewaltigen Feier, in der die gesamte Schule in einer Performance des Liedes We’re All in this Together zusammen singt und dabei tanzt.