In the year 1600, in North Africa, Solomon Kane [James Purefoy] leads his ship's crew into a brutal siege against the Ottoman defenders of a fortress town. After defeating the defenders, Kane and his men raid the fortress, but demons overwhelm the survivors and kill most of the crew. Kane fights his way to the throne room, where a demon known as the Devil's Reaper confronts him and declares that his soul is forfeit to Satan for a life of sin. Kane refuses this fate and leaps from a window to escape.
One year later, Kane returns to England and seeks sanctuary in a monastery, renouncing violence and donating wealth to the Church in hopes of redemption. After a prophetic dream, the abbot expels him. On the road, he is ambushed by robbers who mock his vow of pacifism and leave him for dead. He is found and cared for by the Crowthorns, a Puritan family traveling west to the New World. They encounter a Witch [Isabel Bassett] who marks Meredith Crowthorn [Rachel Hurd-Wood]. Later, they are ambushed by followers of sorcerer Malachi who kidnap Meredith and kill her father and brothers. Kane renounces his vows again and swears to rescue Meredith.
Kane battles Malachi's followers across the countryside, rescuing many captives but not finding Meredith. On his journey, he meets a deranged priest who explains that Malachi's followers are taking the weaker survivors as slaves and corrupting the strong into soldiers. The priest tries to feed Kane to his parishioners, who have become ghoul-like, but Kane escapes, only to face the robbers who attacked him earlier, now corrupted servants of Malachi. He kills two robbers and interrogates the survivor, who says Meredith is dead. Kane drinks to excess at a country inn. Former shipmates recognize him and try to recruit him as a leader of a resistance against Malachi, but Kane refuses. The inn is attacked by Malachi's followers, led by his lieutenant the Masked Rider, Marcus Kane [Samuel Roukin], Kane's older brother. They crucify the leaders of the resistance, including Kane. As Kane hangs on the cross, Meredith cries out his name from her cage in the back of the raiders' wagon; Kane realizes he still has a chance to save her and pulls himself free. Before Malachi's remaining men can finish him, they are killed by survivors of the resistance, who take Kane to safety. Kane is healed by a pagan woman and becomes anxious to confront the raiders.
Malachi used to be a healer before making a bargain with the Devil. He now lives in Kane's ancestral home, from which Kane had been expelled in his youth after defying his father. Kane leads the rebels into the castle via an underground passage, and, as they fight Malachi's minions, Kane heads for the dungeons and frees many captives. There, he finds his father, Josiah Kane [Max von Sydow], who reveals that the Masked Rider is Kane's older brother Marcus, whom Kane thought he had accidentally killed after his banishment. Instead, Marcus was rendered comatose, and when healers failed to revive him, his father turned to Malachi. Disfigured and turned to Malachi's will, Marcus became the Masked Rider. Kane reluctantly kills his father at his request, then heads to the throne room to confront Malachi. Kane finds Meredith in a cage, and as she warns him of a trap, Marcus stabs him in the back. Kane tries to reason with Marcus, but they engage in a duel; Kane wins after setting Marcus on fire and decapitating him. Malachi uses Meredith's blood to release a demon sent to claim Kane's soul, but Kane kills Malachi and sacrifices himself to close the portal; both Malachi and the creature are sucked back through it, leaving Kane unconscious on the floor. He awakens and explains to Meredith that he has finally redeemed his soul. Kane buries his father and Marcus and reunites Meredith with her mother. He assumes a new mission: to roam the Earth combating the forces of darkness.