The film is set in Los Angeles, where drug kingpin 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) is now an adult, working in a tattoo parlor by day, and painting 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 Draven 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 take revenge against the criminals 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 drug warehouse and interrogates him as to who else was involved in the murders. 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 booth, kills him, and leaves him 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 that breaks her leg, 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 then ingests the crow's blood, stealing Ashe's power. Suddenly mortal, Ashe nearly dies from the shock, but is revived after seeing a vision of Danny telling him to keep fighting. Ashe must now attempt to rescue Sarah by seeking out Judah in his lair, an abandoned church. Judah gets the best of the weakened 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. While Judah is still impaled, Ashe calls upon a murder of crows, which devour Judah. 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.

Question: Who is the person who killed Danny?
Answer: Kali, who worked for Judah.
Alternative answer: Kali