По бессарабским степям бродил цыганский табор. Жизнь его проста: днём – бесконечная пыльная дорога, вечером – ужин у костра, песни и смех молодёжи, крепкий сон под бескрайним небом. Поздним вечером шум голосов стих. Лишь в одном шатре не спал старый цыган. Он сидел у затухающего костра и ждал дочь Земфиру, которая ушла прогуляться по степи. Отец привык к таким прогулкам дочери и не беспокоился о ней. Но в этот раз она задерживалась.
Под утро цыган услышал звук шагов. Это возвращалась его дочь. Вместе с ней пришёл незнакомый юноша, которого Земфира звала Алеко. Девушка рассказала отцу, что у молодого человека проблемы с законом, и она предложила ему остаться в таборе. Старый цыган согласился делить с ним кров и пищу, предложив выбрать занятие по своему желанию.
Утром цыган разбудил Земфиру и Алеко, спящих в шатре. Табор собирался в дорогу. Слышны были звонкие голоса, смех, лай собак, рычание медведя. В дороге юноша с грустью смотрел на бескрайнюю степь и о чём-то думал. Ни счастливый смех черноглазой Земфиры, ни яркие лучи солнца не могли успокоить сердце молодого человека. Он вспоминал жизнь, проведенную в изгнании, свои желания, мечты, несбывшиеся надежды. Но всё это осталось в прошлом.
Рядом с юной цыганкой он решил попытаться найти счастье и покой. Земфира поинтересовалась у Алеко, не сожалеет ли он о прошлой жизни, о богатых и шумных городах, о красивых нарядных девушках. Юноша сказал, что чем может быть хороша жизнь, где всё продаётся и всё покупается. А она, Земфира, без украшений лучше любой красавицы, он согласен прожить с ней всю жизнь. Старый цыган слушал и удивлялся таким словам.
Так пролетели два года. Алеко привык к бродячей жизни, научился управляться с медведем. Воспоминания о прошлой жизни редко тревожили его душу. Вечерами они втроём готовили свой бедный ужин и спокойно засыпали. Но однажды Алеко услышал песню Земфиры, которую она пела над колыбелью. В ней она рассказывала о своей любви к молодому цыгану. Алеко был в отчаянии. Старый цыган тоже слышал песню дочери. Она напомнила ему дни молодости, когда зимними вечерами его жена Мариула пела эту песню над колыбелью Земфиры. Прошли годы, многое стёрлось из памяти старика, но песню эту он не смог забыть.
Ночью его разбудила испуганная дочь. Она рассказала, что Алеко плакал и стонал во сне, и ей страшно находиться с ним рядом. Цыган предложил посидеть вместе, не разрешив его будить. Он пояснил ей, что у русских людей есть такое придание о ночном домашнем духе, который мучает спящих. Но не ночной дух беспокоил Алеко. Ему не давала покоя ревность, которая тревожила и мучила его.
На следующий день старик спросил Алеко о том, что с ним происходит. Измученный ревностью юноша открыл ему своё сердце. Цыган попытался утешить его. Он говорил, что дочь его слишком юна, что мимолётные чувства проходят и ему нужно смириться. Он рассказал, что тоже когда-то был молод и силён и любил красавицу Мариулу. Но недолго длилось его счастье. Через год Мариула, оставив ему маленькую Земфиру, ушла с другим табором.
Алеко поразился его словам. Его удивило, что цыган даже не стал преследовать ни жену, ни своего соперника. Цыган был мудрым человеком. Он объяснил Алеко, что молодость даётся один раз в жизни. Как нельзя остановить ход луны в небе, так никто не в силах сдержать чувства, охватившие человека. С тех пор цыган так и не выбрал себе подруги, решил остаться одиноким на всю жизнь. Он не знал, почему так сложилась его судьба. Или оттого, что он уже не мог поверить никому, или так сильно любил Мариулу, что другая женщина не смогла заменить её.
Глубокой ночью Алеко проснулся от страшных видений и заметил, что Земфиры нет рядом. Он пошёл её искать по еле заметным следам на мокрой траве. За дальним курганом Земфира стояла, обнявшись с молодым красивым цыганом. Через мгновение они оба упали на старый курган, сражённые ножом. Утром цыгане нашли Алеко, сидящим на камне, а у его ног лежали мёртвые влюблённые.
Цыгане простились с убитыми и похоронили в одной могиле. Позже к Алеко подошёл старый цыган и попросил покинуть их табор, потому что цыгане не хотели жить с убийцей. Табор собрался, и через час его кибитки исчезли вдали, только одна телега осталась стоять посреди степи. Ночью никто не зажёг в ней огня, вокруг было тихо и пусто.