Воспитанник ЦПР «Краснодар». В 2013 году дебютировал за вторую команду, «Краснодар-2», выступавшую во втором дивизионе. 17 марта 2014 года дебютировал в премьер-лиге в матче против «Томи».
Летом 2016 года отправился в аренду в чешский «Слован». Соглашение было рассчитано на один сезон. В чемпионате Чехии сыграл 12 матчей и забил 3 гола. В конце 2016 года был досрочно возвращён из аренды.
Летом 2017 года был отдан в аренду в другой чешский клуб «Млада-Болеслав». 29 января 2019 года клуб выкупил права на футболиста.
25 января 2020 года подписал контракт на 4,5 года с московским «Динамо». 7 марта 2020 забил свой первый мяч за «Динамо» в ворота «Тамбова». 1 июля 2020 с пенальти забил гол в ворота «Сочи», чем помог добиться ничьи в матче. 12 июля с пенальти отличился в матче против команды «Крылья Советов», добыв победу. 19 августа заработал пенальти и забил первый гол в новом сезоне РПЛ в ворота «Ростова», после чего был признан лучшим игроком матча.
11 июня 2021 года перешёл на правах аренды в «Ростов».