Действие первое
Иван Северьянович Флягин, послушник Валаамского монастыря, вспоминает о своей жизни. В отрочестве он однажды «смеха ради» ударом кнута нечаянно убил монаха. Монах явился ему в видении, укоряя за то, что Иван лишил его жизни, не дав покаяться. Он же рассказал Ивану Северьянычу, что тот – «обещанный» Богу сын, и дал «знамение»: будет Флягин много раз погибать и ни разу не погибнет, пока не придет ему настоящая «погибель», и отправится он во исполнение материнского «обещания» в монастырь, на Валаам-остров. Хоть и не поверил Иван Северьянович, а сбылось пророчество монаха. Странствуя, попал Иван в плен к татарам и прожил с ними в самых Рынь-песках десять лет. Бежал от татар, повстречал пастухов на пути из плена, а возвратившись в родные места, поступил на службу к Князю, который оценил его умение хорошо разбираться в лошадях. Однако после трех лет усердной службы начали Ивана Северьяновича одолевать запои. В одном из трактиров Флягин познакомился со спившимся барином, который обладал даром гипноза. В ту же ночь в другом трактире Иван Северьяныч растратил все деньги, оставленные ему Князем, на прекрасную певунью – цыганку Грушеньку.
Действие второе
Когда Князь потребовал от Ивана Северьяновича пять тысяч рублей, что были доверены ему, Флягин, повинившись, рассказал о прекрасной цыганке. Влюбившись в Грушу, Князь отдал табору огромный выкуп – полсотни тысяч рублей золотом – и забрал ее к себе в дом. Но Князь – человек переменчивый, и Груша ему быстро наскучила. Во время поездки в город Иван Северьянович узнал, что его хозяин собирается жениться на богатой дворянке, а вернувшись домой, он не застал цыганку: Князь тайно отвез ее в лес, на болото. Однако Груша сбежала из заточения, встретилась с Флягиным и, взяв с него страшную клятву, попросила убить ее, поскольку иначе она сама убьет неверного Князя и его молодую невесту. Иван Северьянович, исполняя Грушину просьбу, скинул ее с крутизны в реку. В видениях Флягин слышит голоса убиенных им монаха и цыганки Груши.