Выхаванец ДЮСШ горада Івацэвічы, у юнацкім узросце трапіў у структуру гродзенскага «Нёмана», дзе ў 2015 годзе пачаў выступаць за дубль. У студзені 2016 года малады паўабаронца перайшоў у «Мінск»[4], дзе таксама стаў у асноўным выступаць за дубль. 23 мая 2016 года дэбютаваў у Вышэйшай лізе, выйшаўшы на замену ў канцы матча супраць «Гарадзеі» (2:1), таксама згуляў за асноўную каманду «Мінска» ў адным матчы Кубка Беларусі. У сакавіку 2017 года гуляў у чвэрцьфінале Кубка Беларусі супраць БАТЭ, аднак пазней больш не прыцягваўся да асноўнай каманды «гараджан», выступаў выключна за дубль.
У снежні 2018 года папоўніў склад «Смалявічаў»[8]. Па выніках сезона 2019 дапамог камандзе выйсці ў Вышэйшую лігу, у 2020 годзе заставаўся асноўным іграком смалявічцаў. У ліпені 2020 года пакінуў клуб[9].
У жніўні 2020 года папоўніў склад расійскага клуба «Велес»[10], дзе чаргаваў выхады ў стартавым складзе і на замену, у 2021 годзе стаў часцей заставацца на лаўцы запасных. У чэрвені 2021 года стала вядома, што расійскі клуб не будзе падаўжаць пагадненне з футбалістам[11], і неўзабаве той падпісаў двухгадовы кантракт з брэсцкім «Рухам»[12]. Гуляў пераважна ў стартавым складзе брэсцкай каманды. 7 кастрычніка 2021 года ў матчы супраць мінскага «Дынама» быў выдалены з поля на 30-й хвіліне за грубую гульню, у выніку «Рух» саступіў з лікам 1:3, а абаронца атрымаў дыскваліфікацыю на 6 матчаў (пазней скарочана да 4 матчаў) і больш не з’яўляўся на полі ў сезоне 2021.
У пачатку 2022 года рыхтаваўся да новага сезона з «Рухам», аднак у сакавіку, пасля таго як брэсцкі клуб зняўся з Вышэйшай лігі, падпісаў кантракт з мінскім «Дынама»[13]. Замацаваўся ў стартавым складзе дынамаўцаў, толькі восенню стаў часам заставацца на лаўцы запасных. У снежні 2022 года падоўжыў пагадненне са сталічным клубам[14].
У снежні 2023 года перайшоў у тульскі «Арсенал»[15]. У ліпені 2024 года на правах арэнды далучыўся да брэсцкага «Дынама»[16].