Рассказчик, Иван Тимофеевич, сообщает, как, отдыхая в отпуске в деревне, услышал о некой местной колдунье. Заинтригованный, он находит в лесу жилище старой ведьмы и знакомится с ее внучкой Олесей. Иван находит Олесю интересной в общении девушкой и начинает с ней встречаться. Он удивляется умным речам лесной затворницы, не умевшей даже читать, и еще больше поражается ее магической силе.
Вскоре Иван привязывается к Олесе и пытается защитить “ведьмино семейство” перед урядником, который под нажимом местных жителей решил “извести” старуху и ее внучку. Вскоре Иван понимает, что влюблен в Олесю и, убедившись в ее чувствах, признается ей. Он просит Олесю стать его женой и отказаться от прежней жизни. Олеся отказывается, объясняя это тем, что нельзя идти против судьбы. Смутно Иван осознает, что подарившая ему свою любовь девушка права. В деревне начали недобро судачить о связи барина и ведьмы. Олеся нечаянно спровоцировала приступ злобы поселян, заявившись в церковь на Троицын день. Ее жестоко избили, отчего она в ярости посулила зла селянам.
В ту же ночь на деревню обрушился страшный град. Иван догадался, что теперь поселяне поспешат обвинить в непогоде ведьму, поскольку и его присутствие в деревне уже едва терпят. Он спешно едет в лес, но выясняется, что старуха и ее внучка уже сбежали в поисках нового убежища.