2013 року закінчив академію киян і був заявлений у структуру клубу. 18 вересня2013 року дебютував у юнацькій команді київського «Динамо» U-19 в матчі проти однолітків київського «Арсенала» (6:2), вийшовши на заміну на 52 хвилині замість Андря Вацеби[2]. А вже за місяць, 19 жовтня того ж року, вперше з'явився на полі у грі молодіжного складу киян U-21 проти того ж «Арсеналу», замінивши на 92-й хвилині Ігоря Харатіна[3].
У першій команді «Динамо» дебютував 11 березня2016 року у віці 19 років в матчі Прем'єр-ліги проти львівських«Карпат» (2:1), замінивши на 82-й хвилині гри Дениса Гармаша[4]. 1 листопада того ж року дебютував за киян в Лізі чемпіонів у виїзній грі проти лісабонської «Бенфіки» (0:1), замінивши на 76-й хвилині Сергія Сидорчука. Загалом за «Динамо» провів 7 матчів у всіх турнірах, у яких відзначився одним влучним ударом.
У вересні 2017 року перейшов в одеський «Чорноморець»[5]. До кінця сезону провів за одеський клуб 13 матчів в рамках УПЛ.
Сезон 2018/19 провів в оренді в київському «Арсеналі», де застовпив за собою місце в основному складі. Загалом провів за київський клуб 24 матчі в УПЛ, в яких забив 3 м'ячі.
Улітку 2019 року підписав контракт із дебютантом УПЛ «Колосом» із Ковалівки. Дебютував за нову команду 31 серпня того ж року у виїзній грі проти СК «Дніпро-1» (1:2), замінивши на 56-й хвилині Олександра Поздєєва. 3 листопада 2019 року забив перший гол за «Колос» в рамках УПЛ. Від його влучного удару постраждав донецький «Олімпік». Перед стартом сезону 2021/22 перейшов до львівського «Руху», де за пів року зіграв всього 5 матчів. У січні 2022 повернувся до «Колосу» та уклав повноцінний контракт.