Karierę piłkarską rozpoczął w 2004, w drużynie Chrzciciel Tychy, a następnie dołączył do nowo powstałego zespołu Grom Tychy[1]. W 2012 został przeniesiony do juniorówGKS Tychy. Na początku 2016 został włączony do kadry pierwszej drużyny GKS Tychy, ale nie zdołał w niej zadebiutować[2].
Po zakończeniu sezonu2015/2016 za pośrednictwem agentaMichele′a Thiry′ego został przetransferowany do belgijskiego klubuRSC Anderlecht, w którego akademii szkolił się przez kolejne dwa i pół roku. Z juniorami Anderlechtu w sezonie 2016/2017 zdobył mistrzostwo Belgii U-17[3]. Rozegrał także 5 spotkań wLidze Młodzieżowej UEFA[4].
16 stycznia 2019 został zawodnikiem występującego w słowackiejFortuna lidze, klubuFK Železiarne Podbrezová[5]. Kwota transferu wyniosła 10 tysięcy euro[6]. W lidze zadebiutował 16 lutego 2019 w wygranym 3:1 spotkaniu zFC Nitra. 2 marca 2019 w zremisowanym 1:1 meczu zAS Trenčín zdobył swoją pierwszą bramkę w seniorskiej karierze[7], która została wybrana golem miesiąca w Fortuna lidze[8]. W sezonie2018/2019 był podstawowym obrońcą i rozegrał 14 ligowych spotkań, jednakże jego drużyna zajmując przedostatnie miejsce w tabeli, spadła z ligi.
2 sierpnia 2019 za 250 tysięcy euro został wykupiony przezMŠK Žilina[4], czwarty zespół poprzedniego sezonuFortuna ligi. 10 sierpnia 2019 zadebiutował wchodząc jako rezerwowy w wygranym 3:2 meczu zMFK Ružomberok[9]. Kolejny sezon -2020/2021 rozpoczął jako podstawowy środkowy obrońca drużyny i utrzymał swoją pozycję do końca rozgrywek. 30 sierpnia 2020 w ligowym meczu zZemplin Michalovce zdobył swoją pierwszą bramkę dla klubu[10]. 19 maja 2021 wystąpił i zdobył bramkę w finalePucharu Słowacji, w którym jego drużyna przegrała 1:2 po dogrywce zeSlovanem Bratysława[11]. Po zakończeniu rozgrywek został wybrany do jedenastki sezonuFortuna ligi[12]. W pierwszej części sezonu2021/2022 wystąpił z drużyną w kwalifikacjach doLigi Konferencji Europy UEFA. Rozegrał w tych rozgrywkach osiem spotkań, natomiast w fazieplay-off jego zespół uległ w dwumeczu drużynieFK Jablonec[13]. 22 sierpnia 2022 zdobył bramkę w wygranym 3:0 ligowym meczu zFK Senica[14].
31 sierpnia 2021 za 1,5 mln euro pozyskała goSpezia Calcio[4]. Kiwior związał się z włoskim klubem czteroletnim kontraktem[15]. 16 grudnia 2021 zadebiutował w meczu 15. kolejkiSerie A zInterem Mediolan naStadio Giuseppe Meazza[16]. Kiwior rozegrał pełne 90 minut jako środkowy obrońca, a mecz zakończył się porażką jego drużyny 0:2[17]. Kolejny mecz spędził na ławce rezerwowych, natomiast od spotkania zRomą w 17. kolejce (0:1), w którym wystąpił jako defensywnypomocnik, został podstawowym zawodnikiem drużyny do końca sezonu, występując właśnie na tej pozycji[18]. Sezon2022/2023 rozpoczął jako podstawowy środkowy obrońca drużyny[19].
23 stycznia 2023 za 25 mln euro został piłkarzemArsenalu[20]. Kiwior podpisał z angielskim klubem pięcioipółletni kontrakt, jako czwarty Polak w historii klubu[21], a kwota transferu uczyniła go piątym najdroższym polskim piłkarzem w historii[22] i najdrożej sprzedanym piłkarzem w historii Spezii[23]. 9 marca 2023 zadebiutował rozgrywając 71 minut w zremisowanym 2:2 meczu1/8 finałuLigi Europy UEFA zeSportingiem CP[24]. 19 marca 2023 w meczu zCrystal Palace (4:1) zadebiutował wPremier League, zmieniając w 86. minucie gryGabriela Magalhãesa[25]. 28 maja 2023 w meczu 38. kolejkiPremier League zWolverhampton Wanderers (5:0), zdobył swoją pierwszą bramkę dla klubu[26].
Podczas rundy jesiennej Kiwior rzadko pojawiał się w podstawowym składzie (rozegrał tylko dwa pełne spotkania w Premier League). Z tego powodu zarówno polskie, jak i zagraniczne media spekulowały o możliwym transferze reprezentanta Polski[30][31]. Kiwior został jednak w Arsenalu. 24 lutego 2024 zdobył pierwszą bramkę w sezonie2023/2024, trafiając w wygranym 4:1 meczu przeciwkoNewcastle United[32].
17 maja 2022 selekcjonerCzesław Michniewicz powołał go doreprezentacji Polski na mecz dywizji ALigi Narodów UEFA zHolandią iBelgią[34]. 11 czerwca 2022 zadebiutował w reprezentacji Polski w zremisowanym 2:2 meczu Ligi Narodów zHolandią[35]. Następnie 14 czerwca rozegrał całe spotkane zBelgią (0:1)[36]. 12 września 2022 został powołany na kolejny mecz Holandią i spotkanie zreprezentacją Walii, podczas rozgrywek Ligi Narodów[37]. W obu spotkaniach zakończonych odpowiednio wynikami 0:2, 1:0, wystąpił w podstawowym składzie.
10 listopada 2022 Czesław Michniewicz powołał go naMistrzostwa Świata 2022[38]. 16 listopada rozegrał całe spotkanie towarzyskie zChile (1:0)[39]. Na Mundialu był podstawowym środkowym obrońcą reprezentacji Polski – 22 listopada wystąpił w podstawowym składzie w zremisowanym 0:0 meczu zMeksykiem[40], a następnie w wygranym 2:0 meczu zArabią Saudyjską i przegranym 0:2 spotkaniu zArgentyną. Wystąpił w pierwszym składzie również w meczu 1/8 finału Mistrzostw Świata, gdzie Polska po porażce zFrancją (1:3) odpadła z turnieju[41].
W marcu 2023 znalazł się na pierwszej liście powołańFernando Santosa i był podstawowym środkowym obrońcą drużyny w meczacheliminacji Mistrzostw Europy 2024 zCzechami (1:3) iAlbanią (1:0)[42]. 16 czerwca 2023 w towarzyskim meczu zNiemcami zdobył swoją pierwszą bramkę w reprezentacji Polski, zapewniając drużynie narodowej zwycięstwo 1:0[43].