Act 2

At The Barricade
As the students build a barricade, Javert, disguised as a rebel, volunteers to "spy" on the government troops. Marius discovers Éponine, who disguised herself as a boy, and sends her to deliver a farewell letter to Cosette. Valjean intercepts the letter, promising Éponine he will tell Cosette about it. In the letter, he learns about Marius and Cosette's romantic relationship ("Building the Barricade—Upon These Stones"). Éponine walks the streets of Paris alone, imagining that Marius is there with her, but laments that her love for Marius will never be reciprocated; nevertheless, she decides to rejoin him at the barricade ("On My Own").

The French army arrives at the barricade and demands that the students surrender ("At the Barricade—Upon These Stones"); though Javert tells the students that the government will not attack that night ("Javert's Arrival"). Gavroche exposes him as a spy, and the students detain him ("Little People"). Éponine returns but is shot by the soldiers crossing the barricade. As Marius holds her, she assures him that she feels no pain and reveals her love for him before dying in his arms ("A Little Fall of Rain"). Marius is completely devastated and heartbroken over the death of his best friend, while Enjolras and the other students mourn this first loss of life at the barricades. The students resolve to fight in her name, and they carry her body away, while Enjolras attempts to comfort Marius who is beside himself with immense grief. Valjean arrives at the barricades, disguised as a soldier, in search of Marius ("Night of Anguish"). As the first battle erupts, Valjean saves Enjolras by shooting a sniper. In return, he asks Enjolras to be the one to kill the imprisoned Javert, which Enjolras grants. As soon as Valjean and Javert are alone, Valjean frees Javert and tells him to leave the barricades. Javert warns Valjean that he will not give up his pursuit and rejects what he perceives as a bargain for Valjean's freedom. Valjean says there are no conditions to his release, and holds no blame toward Javert for doing his duty. As Javert leaves, Valjean fires a shot in the air to make it appear that he has executed Javert ("The First Attack"). The students settle down for the night and reminisce. Enjolras tells everyone else to stay awake, but he tells Marius to get some rest, knowing he is still too devastated over Éponine's death to stay awake, and Marius wonders if Cosette will remember him if he dies; while still heartbroken that Eponine is gone. ("Drink with Me"). Valjean overhears this, and as Marius sleeps, Valjean prays to God to save Marius from the onslaught that is to come, even at the cost of his own life ("Bring Him Home").

As dawn approaches, Enjolras realizes that the people of Paris have not risen up with them, but resolves to fight on ("Dawn of Anguish"). Gavroche is shot attempting to gather ammunition ("The Second Attack / Death of Gavroche"). The army gives a final warning to surrender, but the rebels fight to the last man with Enjolras exhorting "let others rise until the Earth is free!". All are killed except Valjean and a gravely wounded Marius who escape into the sewers ("The Final Battle").

The Sewers
Thénardier, also in the sewers, has been looting bodies ("Dog Eats Dog"). He takes a ring from the unconscious Marius, while Valjean sleeps. When Valjean carries Marius to the sewer's exit, he finds Javert who has been waiting for him. Valjean begs Javert for one hour to bring Marius to a doctor, and Javert reluctantly agrees. Javert finds himself unable to reconcile Valjean's mercy with his conception of Valjean as a convict and his need to bring him to justice. Shaken by the questions over his belief in absolute justice, Javert commits suicide by throwing himself into the Seine ("Soliloquy - Javert's Suicide)".

After the Uprising
Back on the streets, women mourn the deaths of the students ("Turning") as Marius mourns his friends ("Empty Chairs at Empty Tables"). As he wonders who saved him from the barricades, Cosette comforts him and they reaffirm their blossoming romance. Valjean realises that Cosette "was never (his) to keep" and gives them his blessing ("Every Day"). Valjean confesses to Marius that he is an escaped convict and must go away because his presence endangers Cosette ("Valjean's Confession"). He makes Marius promise never to tell Cosette, to which Marius agrees. A few months later, Marius and Cosette marry ("Wedding Chorale"). The Thénardiers crash the reception in disguise as "The Baron and Baroness du Thénard". As Marius sees through their disguise, Thénardier attempts to blackmail Marius, telling him that Valjean is a murderer and that he saw him carrying a corpse in the sewers after the barricades fell. When Thénardier shows him the ring as proof, Marius realizes that it was Valjean who saved his life. Marius strikes Thénardier, the newlyweds leave to find Valjean, and the Thénardiers enjoy the party and celebrate their survival ("Beggars at the Feast").

At a convent, Valjean awaits his death, having nothing left to live for. The spirit of Fantine appears to him, thanking him for raising her daughter, and tells him that he has been forgiven and that he will be with God. Cosette and Marius arrive to find Valjean near death. Valjean thanks God for letting him live long enough to see Cosette again and Marius thanks him for saving his life. ("Epilogue - Valjean's Death"). Valjean gives Cosette a letter confessing all about his troubled past and the truth about her mother Fantine. As he dies, the spirits of Fantine and Éponine guide him to Heaven reminding him that "to love another person is to see the face of God." They are joined by the spirits of those who died at the barricades who ask once more: "Do You Hear the People Sing?" ("Finale").