The film begins with two children, Nam-yi and his younger sister Ja-in, being chased by King Injo’s guards and saved by their father Choi Pyeong-ryung, an officer of King Gwanghae and a skilled archer. He sends his children to find a place of refuge with his best friend Kim Mu-seon. As they escape, Ja-in begs her brother to go back to their father, but Choi Pyeong-ryung is killed in front of Nam-yi. Nam-yi, though bitten by the guard dogs, kills them and escapes with Ja-in.
13 years later, Nam-yi (Park Hae-il) has become a skilled archer and hunter with his companions Gang-du, Gab-yong, and Seo-goon, Mu-seon’s son. He learns from Seo-goon (Kim Mu-yeol) that he and Ja-in (Moon Chae-won) plan to get married, with the approval of Mu-seon, who is also Ja-in’s godfather. During the wedding, Nam-yi is up in the mountains hunting deer when he hears the rumble of invading Manchu forces. When Nam-yi makes it back to the village, he finds his foster father slaughtered and his sister taken away. Nam-yi then sets out to find the Qing army and rescue his sister, who was taken directly to the camp of Manchu prince Dorgon (Park Ki-woong). After he ambushes a scouting party to gain information, the Qing royal guard, led by army commander Jyuushinta (Ryu Seung-ryong), sets out to find Nam-yi.
Before being taken into Manchuria, the prisoners, led by Seo-goon, rebel, with Nam-yi arriving in the nick of time to assist them. Nam-yi, Seo-goon, Gang-du, and Gab-yong seek out the Manchu camp, finding it well guarded and Ja-in still alive. Nam-yi captures the Manchu prince, douses him with alcohol, and holds him hostage until sun rise so his sister and Seo-goon can escape, promising to meet them at a hut. He then sets the prince and his tent on fire, sowing chaos in the camp. Jyuushinta arrives at the camp at daybreak to find the prince dead, and sets out to find Nam-yi. Gang-du and Gab-yong both sacrifice themselves to buy Nam-yi time to get away. At a gorge, Nam-yi leaps across and is pinned down by the Manchu. As they cross, he is able to kill three of them but misses the chance to kill Jyuushinta.
At the rendezvous hut, two Manchu ambush Seo-goon and Ji-an but are killed. On the other side of the gorge, Nam-yi gets shot in the arm, but is able to lure a tiger into attacking the Manchu and elude them again. After gaining a lead, he prepares a final ambush and kills two of his remaining four pursuers. Finally, predicting where Jyuushinta is placed, he bends the trajectory of his last arrow, but Jyuushinta is saved by his last serviceman, who takes the fatal shot in his stead.
Nam-yi rides away to find Ja-in, as he assumes that Jyuushinta is dead. They are about to reunite when Ja-in sees Jyuushinta aiming at Nam-yi from a cliff; but before the arrow hits, Ja-in shoots the horse and Nam-yi falls. As Nam-yi and Jyuushinta face off, Ja-in runs in between them. Nam-yi’s arrow barely touches Ja-in’s dress, but Jyuushinta’s finds its mark and sinks into Nam-yi’s heart. Despite Ja-in’s protests, Nam-yi pulls it out and fatally shoots Jyuushinta with it. As he lies dying in Ja-in’s lap, Nam-yi says that they should go back to their old home in Hanyang. Ja-in lays Nam-yi into a boat, and she and Seo-goon cross back over the river into their homeland.
Park Hae-il as Choi Nam-yi
Lee David as young Nam-yi
Moon Chae-won as Choi Ja-in
Jeon Min-seo as young Ja-in
Kim Mu-yeol as Kim Seo-goon
Ryu Seung-ryong as Jyuushinta
Park Ki-woong as Dorgon, Prince of Qing Manchu-China
Ryohei Otani as Nogami
Kim Ku-taek as Gang-du
Lee Han-wi as Gab-yong
Lee Geung-young as Kim Mu-seon
Kang Eun-jin as Eun-yi
Lee Seung-joon as Wan-han
Lee Jae-gu as Hoo-man
Park No-shik as Jang-soon
Yoon Dong-hwan as Choi Pyeong-ryung