Kainz nousi Sturm Grazin junioreista edustusjoukkueeseen vuonna 2010. Hän pelasi joukkueessa kausina 2010–2014 Itävallan Bundesliigassa 98 ottelua, joissa hän teki 15 maalia, ja Eurooppa-liigassa viisi ottelua, joissa hän teki kaksi maalia. Hän voitti Itävallan mestaruuden ensimmäisellä kaudellaan 2010–2011. Kausina 2014–2016 hän edusti Rapid Wieniä ja pelasi Bundesliigassa 65 ottelua, joissa hän teki 11 maalia, ja Eurooppa-liigassa seitsemän ottelua.[1]
Kesällä 2016 Kainz siirtyi saksalaisseura Werder Bremeniin. Hän pelasi joukkueessa 2,5 kauden aikana Bundesliigassa 52 ottelua, joissa hän teki viisi maalia. Tammikuussa 2019 hän siirtyi Saksan 2. Bundesliigassa pelanneeseen Kölniin, jossa hän pelasi 14 liigaottelua kevätkaudella 2019. Kaudella 2019–2020 Köln pelasi pääsarjassa, ja Kainz pelasi kauden aikana 28 bundesliigaottelua, joissa hän teki viisi maalia.[1]
Kainz pelasi kaudella 2020–2021 Bundesliigassa vain yhdeksän ottelua putoamiskarsinta mukaan lukien oltuaan yli puoli vuotta poissa kentiltä polvivamman vuoksi. Hän teki kauden aikana yhden maalin. Kolmena seuraavana kautena hän on pelannut kausittain 32, 32 ja 33 bundesliigaottelua ja tehnyt niissä vastaavasti neljä, kuusi ja viisi maalia. Kaudella 2022–2023 hän pelasi Konferenssiliigassa viisi ottelua.[1]
Kainz pelasi Itävallan nuorisomaajoukkueissa. Ensimmäisen kerran hän pelasi Itävallan A-maajoukkueessa marraskuussa 2015 ystävyysottelussa Sveitsiä vastaan. Hän palasi maajoukkueeseen kesäkuussa 2017 ja pelasi avauskokoonpanossa neljässä Itävallan viidestä jäljellä olleesta MM-karsintaottelusta. Vuoden 2020 EM-kilpailujen karsinnoissa hän pääsi kentälle vain muutamaksi minuutiksi kolmessa ottelussa. Vuonna 2021 hän pelasi neljä MM-karsintaottelua, joista yhdessä hän oli avauskokoonpanossa. Vuonna 2023 hän pelasi viisi EM-karsintaottelua ja oli kerran avauskokoonpanossa. Hän teki A-maaottelu-uransa ensimmäisen maalin maaliskuussa 2023 EM-karsintaottelussa Viroa vastaan. Hän on toukokuun 2024 loppuun mennessä pelannut 27 A-maaottelua, joissa hän on ollut 12 kertaa avauskokoonpanossa.[1]