Выхаванец маладзечанскай ДЮСШ-4, пазней трапіў у структуру барысаўскага БАТЭ. У 2016 годзе пачаў гуляць за дубль барысаўчан, 14 верасня таго ж года дэбютаваў у асноўнай камандзе ў матчы Кубка Беларусі супраць магілёўскага «Тарпеда» (4:0), выйшаўшы на замену ў другім тайме, а 28 кастрычніка дэбютаваў у Вышэйшай лізе, выйшаўшы на замену ў канцы матча з «Крумкачамі» (3:0).
У сезоне 2017 выступаў за дубль, а да сезона 2018 рыхтаваўся разам з асноўнай камандай. У маі 2018 года ў сувязі з траўмай Максіма Валадзько ў двух матчах выхадзіў у стартавым складзе барысаўчан у Вышэйшай лізе на пазіцыі левага абаронцы, адгуляўшы ў іх па 90 хвілін; пазней у тым жа месяцы падоўжыў кантракт з барысаўчанамі[2]. З ліпеня 2018 года да жніўня 2019 года не з’яўляўся на полі праз праблемы са здароўем, пазней стаў прыцягвацца да дубля.
У сакавіку 2020 года зноў падоўжыў кантракт з БАТЭ[3] і неўзабаве быў аддадзены ў арэнду ў мазырскую «Славію»[4]. З цягам часу замацаваўся ў якасці асноўнага абаронцы мазыран. Па заканчэнні сезона 2020 вярнуўся з арэнды ў БАТЭ.
У пачатку 2021 года праходзіў перадсезонную падрыхтоўку разам з БАТЭ і пачаў сезон у складзе барысаўчан. Паспеў чатыры разы выйсці на замену ў матчах Вышэйшай лігі, прыцягваўся таксама да матчаў Кубка Беларусі. У ліпені 2021 года зноў быў арандаваны «Славіяй»[5]. У якасці трывалага іграка асновы дапамог клубу захаваць месца ў Вышэйшай лізе. У снежні 2021 года па заканчэнні арэнды пакінуў мазырскую каманду[6] і вярнуўся ў БАТЭ, дзе замацаваўся ў стартавым складзе, стаў выступаць на пазіцыі паўабаронцы.
У верасні 2023 года перайшоў у екацярынбургскі «Урал»[7].
Міжнародная кар’ера
У 2015—2017 гадах гуляў за юнацкія зборныя Беларусі ў кваліфікацыі чэмпіянату Еўропы.
14 лістапада 2019 года дэбютаваў у моладзевай зборнай Беларусі, адгуляўшы другі тайм таварыскага матча супраць Славакіі (0:3).
3 чэрвеня 2022 года ўпершыню згуляў за нацыянальную зборную Беларусі, выйшаўшы на замену ў другім тайме матча Лігі нацый УЕФА супраць Славакіі (0:1).