Ciganski logor luta po stenama Besarabije. Na vatri, ciganska obitelj priprema večeru, konji se pase u blizini, a pitomi medvjed leži iza šatora. Postepeno sve postaje tiho i pada u san. Samo se u jednom šatoru probudi starac čekajući svoju kćer Zemfiru koja je krenula u šetnju poljem. A onda se pojavljuje Zemfira zajedno s mladićem nepoznatim starcem. Zemfira objašnjava da ga je dočekala iza kočije i pozvala ga u logor da ga progoni po zakonu i da želi biti ciganin. Zove se Aleko. Starac srdačno poziva mladića da ostane koliko želi i kaže da je spreman s njim podijeliti kruh i sklonište.
Ujutro starac probudi Zemfira i Aleko, logor se probudi i krene na slikovitu gomilu. Srce mladića steže se čežnjom pri pogledu na praznu ravnicu. Ali za čim teži? Zemfira to želi znati. Između njih nastaje razgovor. Zemfira se boji da žali zbog života koji mu je ostao, ali Aleko ju uvjerava i kaže da je bez žaljenja napustio "zatočeništvo zagušenih gradova". U životu koji je napustio nema ljubavi, što znači da nema zabave, a sada mu je želja uvijek biti uz Zemfira. Starica, slušajući njihov razgovor, pripovijeda im staru tradiciju o pjesniku, kojeg je kralj svojedobno protjerao u te krajeve i prošao u svom srcu, usprkos ljubavi i brizi mještana. Aleko prepoznaje junaka ove legende Ovidija i zadivljen je spletkama sudbine i nestalnošću slave.
Aleko dvije godine luta kampom, besplatno, poput samih Cigana, ne žaleći napuštene. Vozi medvjeda sela i zarađuje kruh. Ništa ne zbunjuje mir njegove duše, ali jednog dana čuje kako Zemfira pjeva pjesmu koja ga dovodi u zbrku. U ovoj pjesmi Zemfira priznaje da se zaljubila u njega. Aleko je zamoli da prestane pjevati, ali Zemfira nastavlja, a onda Aleko shvati da je Zemfira prema njemu nevjerna. Zemfira potvrđuje Alekove najstrašnije pretpostavke.
Noću, Zemfira se budi oca i kaže da Aleko plače i stenja u snu, zove je, ali njegova je ljubav poslala Zemfira, njeno srce traži njezinu volju. Aleko se probudi, a Zemfira odlazi k njemu. Aleko želi znati gdje je bila Zemfira. Ona odgovara da je sjedila s ocem jer nije mogla podnijeti onu mentalnu muku Aleko koju je doživio u snu. Aleko priznaje da je u snu vidio Zemfirovu izdaju, ali Zemfira ga uvjerava da ne vjeruje u vješte snove.
Stari Ciganin moli Aleka da ne bude tužan i inzistira da ga čežnja uništi. Aleko priznaje da je razlog njegove tuge njegova ravnodušnost Zemfira. Starica utješi Aleka, kaže da je Zemfira dijete, da žensko srce voli u šali, da nitko nije slobodan da naruči žensko srce da voli jedno, kako da naredi da se mjesec smrzne. Ali Aleko se, prisjećajući se sati ljubavi provedene sa Zemfirom, nije utješan. Žali kako se "Zemfira ohladila", da je "Zemfira nevjerna." Kao upozorenje, starac govori Aleku o sebi, o tome kako je bio mlad, kako je volio prekrasnu Mariulu i kako je napokon postigao reciprocitet. Ali mladost je brzo prošla, još brže - Mariula ljubav. Jednom je otišla u drugi kamp, ostavivši svoju malu kćer, tu istu Zemfiru. I od tada, "sve Djevice svijeta" omalovažavaju starca. Aleko se pita kako se starac nije mogao osvetiti zločincima, kako nije mogao zabiti bodež u srce otmičara i nevjerne supruge. Starica odgovara kako ništa ne može zadržati ljubav, ništa se ne može vratiti, "što se dogodilo, neće biti više". Aleko uvjerava starca da ni sam nije takav da se ne može odreći svojih prava ili čak uživati u osveti.
U međuvremenu, Zemfira je na sastanku s mladim ciganom. Dogovaraju se za novi datum večeras nakon zalaska mjeseca.
Aleko nestrpljivo spava i, probudivši se, ne nađe Zemfira u blizini. Ustaje, napušta šator, obuzima ga sumnja i strah, luta oko šatora i vidi trag koji je jedva primjetljiv na svjetlu zvijezde, koji vodi do humka, a Aleko kreće ovom stazom. Odjednom ugleda dvije sjene i čuje glasove dvoje ljubavnika koji se ne mogu razdvojiti. Prepoznaje Zemfira, koja zamoli svog ljubavnika da pobjegne, ali Aleko je zabio nož u njega ... U užasu, Zemfira kaže da prezire Alekove prijetnje i psuje ga. I Aleko je ubije.
Zora je zatekla Aleka kako sjedi na brdu s krvavim nožem u ruci. Pred njim su dva leša. Plemići se oprostili od mrtvih i iskopali grobove. Stari ciganin sjedi u mislima. Nakon što su tijela ljubavnika iznesena, on dolazi kod Aleka i kaže: "Pusti nas, ponosni čovječe!" Kaže da Cigani ne žele živjeti pored ubojice, s čovjekom koji "samo za sebe" želi biti slobodan.
Starac je to rekao, a logor se ubrzo pokrenuo i nestao u stepi. Na kobnom polju ostala je samo jedna kolica. Noć je pala, ali nitko nije zapalio vatru i nitko nije proveo noć pod njenim krovom.