In AD 859, as the Tang Dynasty declines, several rebel groups are established, the largest of which is the House of Flying Daggers, based in Fengtian, who battle the corrupt government that oppresses the people. Its members use special throwing daggers that always hit their targets to steal from the rich and give to the poor, gaining the support of the locals. Two police officers, Leo (Andy Lau) and Jin (Takeshi Kaneshiro)—who are best friends—are ordered to kill the leader of the group within ten days, a task that appears to be impossible as no one knows who the leader of the House of the Flying Daggers is.
To accomplish this, Leo arrests Mei (Zhang Ziyi), a blind dancer who is suspected of being the previous leader’s daughter. Jin proceeds to assault the jail and set Mei free, pretending that he is a rebel sympathizer, an act which gains Mei’s trust. As Mei and Jin travel to the Flying Dagger headquarters, Leo trails behind with reinforcements. Unfortunately, Mei and Jin fall in love.
To make the deception more realistic, Leo and his policemen pretend to ambush the pair. Later, though, they are ambushed for real by soldiers. At a secret meeting, Leo explains that the military has gotten involved and wants Jin and Mei dead. A few days later, Jin and Mei are ambushed again in a bamboo forest and almost killed, but they are saved by the House of Flying Daggers and taken to their headquarters. At this point, Mei is revealed to have been faking her blindness, and not the actual former leader’s daughter. Furthermore, she is engaged to Leo, who has also been revealed to have been pretending to be an officer, and is really a Flying Daggers member. The Flying Daggers are not afraid of the military and are actually looking forward to an open battle. A heartbroken Leo tells Mei that he waited for her for three years since he went undercover to infiltrate the police, and asks how she could fall in love with Jin after only three days, only to be told she has her heart set on Jin.
Leo tries to rape Mei, but their superior Nia throws a dagger into Leo’s back and reassigns them to new missions, separating them. Shortly after, Mei is told to execute Jin. She frees him instead but refuses to desert the House to join him. Later, Mei changes her mind and rides after Jin, but is ambushed by Leo, who casts two daggers at her. Mei manages to deflect one of them while the other pierces her breast and seemingly kills her. At this point, Jin discovers Leo and the two of them fight, but their skills are too evenly matched. A raging blizzard falls upon them, while the military approaches the House.
Finally, with both men badly wounded and exhausted, Leo pulls Nia’s dagger out of his back and threatens to use it on Jin. Mei reappears and threatens to pull the dagger out of her breast and throw it at Leo, which would cause her to bleed to death, but Jin begs her to save herself. After several tense moments, Leo decides to pretend to throw his dagger, intending to die by Mei’s dagger while sparing Jin. However, Mei attempts to use her dagger to intercept Leo’s dagger in flight. The result is that neither Leo nor Jin dies, but only Mei. In the end, Leo stumbles away in guilt while Jin cries over Mei’s body, singing a song praising her as a “rare beauty”, the likes of which he will never see again. Whether the House won against the military is left ambiguous.