↑ Количество игр и голов за профессиональный клуб считается только для различных лиг национальных чемпионатов, обновлено по состоянию на 10 октября 2024 года.
↑ Количество игр и голов за национальную сборную в официальных матчах, обновлено по состоянию на 10 октября 2024 года.
Воспитанник польского клуба «Легия». В её академию попал в 14 лет. С 2016 года начал свои выступления за молодёжную команду. В сезоне 2016/17 стал подтягиваться к тренировкам с основным составом. 20 августа дебютировал в польском чемпионате в поединке против клуба «Арка», выйдя на замену на 75-й минуте вместо Ярослава Незгоды[4]. Дебютировал в Лиге чемпионов в сезоне 2017/18 против финского ИФК «Мариехамн», выйдя на замену на 64-й минуте.
31 мая 2019 года подписал пятилетний контракт с «Динамо»[5]. В октябре был признан лучшим игроком месяца по версии болельщиков клуба[6]. Дебютный гол забил 9 ноября в ворота «Рубина» (1:0)[7]. В июне 2021 года «Динамо» подписала новый 5-летний контракт с футболистом[8]. Однако после окончания сезона и отпуска игрок не вернулся в Россию из-за политических взглядов[9].
12 июля 2022 года перешёл на правах аренды в нидерландский «Фейеноорд»[10].
22 июля 2023 года перешёл в турецкий «Фенербахче», подписал четырёхлетний контракт[11][12].
9 сентября 2019 года в отборочном матчи ЛЕ 2020 против Австрии, дебютировал за основную сборную Польши, заменив на 70-й минуте матча Камила Гросицкого[13]. 10 октября 2019 года в следующем матче за сборную против Латвии (0:3) отдал первую голевую передачу. Дебютный гол за сборную забил 19 ноября 2019 года в матче против Словении[14], матч закончился в пользу сборной Польши (3:2).