Dead soldiers lie in the street. The corpses of revolutionaries have been piled up behind the barricade. Hundreds of soldiers are massing to overcome the last of the rebels; the barricade defended by Marius and his friends is one of the last left standing. Marius and the group’s leader, Enjolras, entreat rebels who have families to leave now: “Everyone who stays here and fights today will die,” Enjolras says. “There is nothing to hope for.” Eventually many of the rebels depart, hugging their comrades as they go.
Jean Valjean arrives at the barricade just as the soldiers begin to attack. Cannons blast a hole in the barricade and soldiers pour in. Jean covers the breach with a mattress while the other rebels drive the army back. The rebels have won a reprieve, but they can’t hold out much longer, and they’re running out of ammunition. Gavroche scampers over the barricade and dances between the bodies of soldiers, gathering bullets while he sings to himself – and while soldiers shoot at him.
The taunting boy is inevitably hit. Marius rushes out to drag his body back to safety and is himself scraped by a bullet. While his wound is bound, Jean lays Gavroche’s lifeless form next to the body of his sister, Éponine. He then goes inside the tavern where Marius is being treated – and where Javert is still bound to a pole. When someone asks what to do with Javert and Enjolras says to kill him, Jean asks to be the one to do it. As the others, including the wounded Marius, go back to fight against another onslaught, Jean pulls a knife.
Rather than stab his relentless nemesis, Jean cuts his bonds. He gives Javert his address; he won’t resist arrest if he comes out of this alive. Then he tells the police inspector to run away before it’s too late.
Back at the barricade, the soldiers are overwhelming the rebels. Jean returns to see Marius shot. He fights through the brawl and grabs Marius – his daughter’s beloved – and drags him behind some rubble. As the army forces the rest of the rebels into the tavern, Jean pries off a grate and pulls himself and Marius into the sewer. The rebels are all killed in the tavern; Enjolras and Grantaire, who has only just found his courage, are executed against a wall by firing squad.
Jean wanders the sewers with Marius’s unconscious form, looking for a way out as rain pours in and fills the passageways with ever more water. When he stops to rest and tend to Marius’s wounds, Jean finds an identifying card on Marius, requesting that his body be brought to his grandfather, Gillenormand, should he die.
Finally, light appears at the end of a passage – but the exit is blocked by a locked grate. Thénardier appears and offers to let Jean out – he lives in these sewers and has a key to the grate – if Jean gives him half of the money in Marius’s pockets. The scoundrel assumes Jean has robbed and murdered Marius. Jean agrees. Thénardier is disappointed by the scant money, but lets Jean out anyway – not before telling him he ruined his life. Jean shelters under a bridge with Marius, and is soon found by Javert and police. They are trying to apprehend Thénardier, who has been spotted there.
Instead of Thénardier, Javert finally catches Jean. But he is troubled, having been saved by a man who he thought was evil. So he grants Jean a request: that they first bring Marius to Gillenormand before Jean is arrested. Once Marius has been unceremoniously deposited on the stairs of Gillenormand’s grand apartment, Jean asks for one more thing: to go home for a few minutes and see his Cosette. Javert agrees.
On the way there, Javert asks Jean who Marius was; he must have been dear to him if Jean went through such trouble to save him. “Quite the contrary,” Jean replies: Marius will rob him of his happiness – that is, Cosette – if he survives. Javert is stunned. He lets Jean go in to his house alone, to Jean’s surprise. Jean stands over the sleeping Cosette, leaves Marius’s note with Gillenormand’s address on her bedside table, says, “Forgive me,” and leaves. But Javert is gone.
Back at his office, the police inspector writes up a series of reforms for the treatment of prisoners. He calls his deputy and asks him to deliver the memo to the police chief. Telling the deputy that he let Jean go in “an act of madness,” he resigns. His entire worldview has been shattered by the revelation that the man he thought was a born prisoner is in fact a good person. Javert leaves his office – and jumps off a bridge.
Days later, Marius finally awakes. He tells the exuberant Gillenormand that he wants to marry Cosette – and is surprised to learn that the marriage has already been arranged. Gillenormand couldn’t be happier to be reunited with his beloved grandson, and is even more overjoyed when Marius calls him father.
Jean and Cosette arrive, but Marius doesn’t recognize the man who saved him. Gillenormand is prepared to provide for Marius and Cosette, believing Cosette to be penniless, but Jean surprises him and Marius with a massive dowry.
Later, Jean shares his criminal past with Marius, who also believes Jean killed Javert in the tavern at the barricade. Jean reveals that he is not Cosette’s biological father, and promises the disgusted Marius – “you don’t belong in the family of men,” he says – that he will disappear from their lives after the wedding, as long as Marius never tells Cosette that Jean is an ex-convict. Marius agrees.
Six weeks later, when Marius and Cosette return from their honeymoon, they find an unwelcome guest waiting for them. Neither Marius, with his memories of Thénardier’s attempt to rob and kill Jean, nor Cosette, with her abusive past as Thénardier’s servant, is happy to see the scoundrel again. He wants to go to the New World and set up a slave business, but he needs money first, so he offers them information in exchange for payment.
Jean is a thief and assassin, Thénardier says – but Cosette refuses to believe, and Marius already knows: Jean killed Javert. No, Thénardier replies, Javert killed himself. Jean killed a young man in the sewers, someone about the size of Marius. Cosette and Marius realize that it was Jean who saved Marius’s life. Instead of tainting Jean’s reputation, Thénardier has burnished it. Marius threatens Thénardier – he saw him try to kill Jean in the tenement – gives him money out of disgusted pity, and makes him leave.
Now that Jean has been redeemed, Marius agrees to search for him with Cosette, who has a hunch where he is. They travel to the town where Jean met the Bishop all those years ago, and began his transformation into a good man. There they find a sickly Jean gardening. He says he’s not worthy of Cosette’s love, or anybody’s love. But Cosette replies that she knows everything; Jean saved Marius’s life. Jean collapses; he’s dying. Yet he has been given the great gift of knowing that someone loves him, so he is happy. He dies with Cosette and Marius at his side, his last words telling them to love each other.
Love redeems, and makes a life worthy. But it’s not enough to conquer the entrenched problems that caused such distress throughout the lives of Les Misérables, “the dispossessed.” There are still children starving in the streets of Paris.