Acte I
Deux bandes rivales d'adolescents, les Jets (américains) et les Sharks (migrants portoricains), se disputent le contrôle d'un quartier new-yorkais, au milieu des sifflets et des railleries des policiers (Danse du Prologue). Les Jets s'écartent pour faire la fête de leur côté et se concertent pour trouver un moyen de conserver leur domination sur la rue (Chanson des Jets). Leur chef, Riff, convainc son ami Tony, de les rejoindre au bal du quartier. Fidèle à Riff, Tony acquiesce mais il n'est pas heureux de la vie en bande et imagine un futur meilleur (Something's Coming). Maria travaille dans un magasin de robes de mariées avec Anita, la petite amie de son frère, Bernardo, qui est le chef des Sharks. La famille de Maria a choisi Chino pour être son futur mari. Maria est nouvellement arrivée du Porto Rico et, comme Tony, est pleine d'espoir. Anita confectionne une robe pour Maria qu'elle portera au bal du quartier.
Au bal, après les présentations, les jeunes gens commencent à danser. Bientôt commence une danse de défi (Mambo). Tony et Maria s'aperçoivent à travers la salle et se sentent mutuellement attirés. Ils dansent ensemble, oubliant la tension régnant dans la salle, et tombent amoureux. Bernardo exaspéré enlève sa sœur des bras de Tony et l'envoie à la maison. Riff et Bernardo se mettent d'accord pour se retrouver pour un « conseil de guerre » dans l'arrière-boutique du Doc, considérée comme terrain neutre. Tony, épris et heureux, cherche l'immeuble de Maria pour chanter une sérénade sous ses fenêtres (Maria). Maria apparaît alors sur l'escalier de secours, et les deux jeunes gens s'avouent leur amour (Tonight). Pendant ce temps, Anita et les autres filles des Sharks évoquent les différences entre Porto Rico et l'Amérique (America). Chez le Doc, l'anxiété monte parmi les Jets qui attendent les Sharks (Cool). Les Sharks arrivent, et après une interruption de l'inefficace lieutenant. Schrank, ils conviennent que Bernardo se battra contre Diesel. Tony suggère les poings, mais ce sont les armes qui sont choisies. En dépit des avertissements de Doc., Tony est convaincu que rien ne peut arriver de grave ; il est amoureux.
Tony retrouve Maria au magasin le jour suivant, où ils rêvent de leur mariage (One Hand, One Heart). Elle demande à Tony d'empêcher le combat. Il promet. Tony, Maria, Anita, Bernardo (et les Sharks), et Riff (et les Jets), tous évoquent chacun de leur côté les événements de cette nuit (Tonight Quintet). Tony arrive et essaye d'arrêter la bagarre qui a déjà commencé. Mais Bernardo raille Tony, ridiculise sa tentative de faire la paix et le provoque de toutes les manières alors que Tony conserve son calme. Au milieu de la bagarre, Riff et Bernardo se battent au couteau. Tony conjure Riff de s'écarter, mais Riff s'en débarrasse et continue le combat. Bernardo poignarde Riff. En réaction, Tony tue Bernardo dans un excès de fureur. Le bruit des sirènes se rapproche, et tout le monde se disperse, excepté Tony, choqué par ce qu'il a fait. Au dernier moment, Anybodys, un garçon manqué, qui espère devenir un Jet, indique à Tony le moyen de se sauver. Seuls restent les corps de Riff et de Bernardo.
Acte II
Avec ses amies, Maria n'a pas entendu les nouvelles et rêve éveillée heureuse d'être aimée par Tony (I Feel Pretty). Elle évoque le mariage, mais les filles croient qu'elle pense à Chino. Chino arrive alors et annonce que Tony a tué Bernardo, et jure qu'il le lui fera payer. Après leur départ, Tony grimpe par la fenêtre de Maria et la trouve en prière. Il explique ce qui s'est passé et demande son pardon. Maria et Tony imaginent un monde meilleur où ils pourront s'aimer, et où les Jets et les Sharks pourront vivre ensemble dans la paix et l'harmonie (Somewhere). Ils s'embrassent sur le lit de Maria. Pendant ce temps, le policier Krupke interroge les Jets au sujet des meurtres. La bande se moque de Krupke et des autres adultes (assistants sociaux, police, psychiatres et juges), qui ne les comprennent pas (Gee, Officer Krupke).
Anita effondrée arrive chez Maria. Tony s'échappe par la fenêtre, demandant à Maria de le retrouver chez le Doc d'où ils pourront s'enfuir au loin. Anita se rend compte que Tony était avec Maria, et demande avec horreur comment elle peut aimer l'homme qui a tué son frère (A Boy Like That). Maria répond passionnément (I Have A Love), et Anita comprend que Maria aime Tony autant qu'elle-même a aimé Bernardo. Elle avoue que Chino a un revolver et recherche Tony. Schrank arrive pour interroger Maria, et Anita accepte à contrecœur d'aller chez le Doc pour demander à Tony d'attendre.
Au magasin, les Jets raillent Anita avec des insinuations et des insultes racistes. Les moqueries se transforment en agression physique, et Anita est violentée avant que Doc horrifié n'arrive pour arrêter les garçons. Dans sa colère, Anita hurle aux Jets que Bernardo avait raison à leur sujet et ment en disant que Chino a tué Maria. Après avoir calmé les Jets, le Doc relate la nouvelle à Tony, qui faisait les cent pas dans la cave du Doc en rêvant de s'installer à la campagne et d'avoir des enfants avec Maria. Doc lui apprend la triste nouvelle (sans savoir que c'est un mensonge défensif d'Anita). Sentant que plus rien ne vaut de vivre, Tony part chercher Chino priant pour que Chino le tue aussi. Au moment où Tony s'aperçoit que Maria est vivante, Chino arrive et le tue. Pendant que Tony meurt dans les bras de Maria, les Jets et les Sharks se rassemblent autour des amoureux (Somewhere, reprise). Maria prend le revolver de Chino et leur dit que c'est la haine qui a tué Tony et les autres, maintenant elle peut les tuer, parce qu'elle les hait aussi. Mais elle est incapable de tirer et s'effondre dans sa douleur, mettant fin au cycle de la violence. Les adultes sont arrivés trop tard pour empêcher les coups de feu. Progressivement, les membres des deux bandes se réunissent de chaque côté du corps de Tony, proposant de mettre fin à jamais à leur inimitié. Les Jets et les Sharks forment un cortège et ensemble ils portent le corps de Tony. Krupke arrête Chino.