The film is set in Los Angeles, where drug king Judah Earl (Richard Brooks) has mechanic Ashe Corven (Vincent Pérez) and his eight-year-old son Danny (Eric Acosta) killed after they witness a gang of Judah's thugs murdering a fellow drug dealer.
Sarah from the first film (Mia Kirshner) has been having dreams about Ashe and Danny. Sarah works in a tattoo parlor by day, and paints haunting, surreal images of death and resurrection in her apartment at night. She is haunted by disturbing dreams about Ashe and Danny, and after a day's work in the tattoo parlor, Sarah is visited in her apartment by a large crow as she contemplates a ring that Eric gave her years before.
Sarah follows the crow to the harbor at night on All Saints' Day, and witnesses Ashe's resurrection and frantic escape from his watery grave. She takes him to her apartment. When Sarah tells Ashe he is dead, he panics and runs screaming into the night, ending up at his own home, where he relives the final moments of his life.
Sarah arrives there to find Ashe brooding, and she explains to him why he has been resurrected by the Crow — so he can pursue those who killed him and Danny. With the guidance of the crow, Ashe starts killing Judah's henchmen, one by one. Ashe first visits Spider-Monkey (Vincent Castellanos) in a warehouse and interrogates him as to who else was involved in the atrocity. Ashe then kills him by blowing up the building. Another of Judah's lackeys, Nemo (Thomas Jane), is spending the night at a peeping booth. Ashe appears in the booths and kills him. Nemo is then discovered with a doll stuffed in his pants, and a paper crow in his mouth.
Judah has in his employ a blind prophetess named Sybil (Tracey Ellis) who is able to ascertain Ashe's link to Sarah and to the crow that is the source of his powers. Judah captures Sarah in order to draw Ashe to him and steal his power.
One of the murderers, Kali (Thuy Trang), goes to Sarah's apartment to draw Ashe out. While battling her, Ashe realizes that Kali is the one who killed Danny; enraged, he throws her against a wall and then out a window, leaving a crow-shaped blood pattern. Ashe then pursues Judah's right-hand-man, Curve (Iggy Pop), in a motorcycle chase. Ashe shoots Curve's motorcycle, which blows up and throws Curve onto the road. Ashe then drags Curve into the nearby river, leaving him to die as local parishioners cast down flower petals in the shape of a crow.
On the day of the annual Day of the Dead festival. Judah captures the crow and impales its wings with knives before killing it. He ingests the blood, effectively stealing Ashe's power. Ashe must now attempt to rescue Sarah by seeking out Judah in his lair, an abandoned church. As Judah has killed the crow, Ashe is quickly losing his strength and invulnerability. As a result, Judah is able to get the best of Ashe in the ensuing fight. Judah ties a rope around Ashe and savagely whips him, intending to hang him.
Sarah rushes up and stabs Judah in the forehead, causing Judah to drop Ashe. Judah pulls out the knife and starts moving toward Ashe. Sarah gets in the way, and Judah stabs her in the stomach. Ashe gets up and impales Judah on a metal pipe, but this does not kill Judah either. Judah gloats that he cannot be killed. While Judah is still impaled, Ashe calls upon a murder of crows, which fly through Judah. Judah's body disappears as he finally dies. Sarah dies in Ashe's arms, a tableau reminiscent of a painting she had completed earlier in the film. Ashe returns to death, knowing that he can rest in peace with Sarah, and his son.
- Vincent Pérez as Ashe Corven/The Crow
- Mia Kirshner as Sarah
- Richard Brooks as Judah Earl
- Thuy Trang as Kali. this is Trang's last role before her retirement from acting, and her car accident death in 2001.
- Iggy Pop as Curve
- Thomas Jane as Nemo
- Vincent Castellanos as Spider Monkey
- Eric Acosta as Danny
- Ian Dury as Noah
- Tracey Ellis as Sybil
- Alan Gelfant as Bassett