Początkowo trenował piłkę nożną w klubie Kryształ Werbkowice, grał także w tenisa stołowego, osiągając sukcesy w zawodach szkolnych. W pierwszej klasie liceum rozpoczął treningi piłki ręcznej w Padwie Zamość. Następnie przeniósł się do szkoły mistrzostwa sportowego w Gdańsku, grając w I lidze[1].
W latach 2015–2018 był graczem Stali Mielec. W sezonie 2015/2016 zadebiutował w jej barwach w Superlidze. Pod koniec listopada 2016, po rozegraniu w sezonie 2016/2017 12 meczów, w których zdobył 36 goli, zerwał więzadła krzyżowe w kolanie, co wykluczyło go z gry w dalszej części rozgrywek[3]. W sezonie 2017/2018 rozegrał 30 spotkań i rzucił 124 bramki[4], a ponadto został wybrany najlepszym zawodnikiem października 2017 w Superlidze[5].
W 2018 przeszedł do Gwardii Opole, z którą podpisał dwuletni kontrakt[6]. W sezonie 2018/2019 rozegrał w lidze 15 meczów i zdobył 35 goli[7], zaś w Pucharze EHF wystąpił dwa razy, rzucając dwie bramki[2]. Regularną grę uniemożliwiła mu kontuzja kolana – najpierw naderwanie więzadeł, a po wznowieniu treningów ich całkowite uszkodzenie (w marcu 2019 przeszedł zabieg, po którym pauzował przez kilka miesięcy)[8].
W 2014 uczestniczył w mistrzostwach Europy U-18 w Polsce, podczas których rozegrał siedem meczów i zdobył sześć goli[9]. W 2015 wziął udział w mistrzostwach świata U-19 w Rosji. W 2016 wystąpił w mistrzostwach Europy U-20 w Danii, w których rozegrał siedem meczów i rzucił trzy bramki[10]. W październiku 2017 podczas międzypaństwowego turnieju w Płocku zadebiutował w reprezentacji Polski B (w trzech meczach zdobył osiem goli).