Clubcarrière
Kelly speelde vanaf 2011 in de jeugd van Bristol City. Zijn competitiedebuut maakte hij op 23 december 2017, toen door een eigen doelpunt van Aden Flint en een benutte strafschop van Bobby Reid met 1–1 gelijkgespeeld werd tegen Queens Park Rangers. Kelly mocht in de basis starten van coach Lee Johnson en hij werd na vierenzestig minuten gewisseld ten faveure van Hörður Björgvin Magnússon. Drie dagen later speelde Bristol City in eigen huis tegen Reading. Kelly begon ditmaal op de bank, waardoor Magnússon in de basis terechtkwam. De linksachter mocht in de negentigste minuut invallen voor Jamie Paterson, die Bristol op voorsprong had gezet. In de derde minuut van de blessuretijd verdubbelde Kelly de voorsprong, waardoor Bristol het duel met 2–0.
In de zomer van 2019 maakte Kelly voor een bedrag van circa vijftien miljoen euro de overstap naar het naar de Premier League gepromoveerde Bournemouth, waar hij zijn handtekening zette onder een verbintenis voor de duur van vijf seizoenen. In zijn eerste seizoen degradeerde Bournemouth weer naar het Championship. Aan het einde van het seizoen 2021/22 keerde Bournemouth terug naar de Premier League. Na twee seizoenen op dat niveau verkaste Kelly transfervrij naar Newcastle United, waar hij een contract voor vijf seizoenen kregen. In een half seizoen tijd kwam hij tot tien competitie-optredens, waarna Juventus hem tot aan de zomer op huurbasis overnam, met een verplichte optie tot koop na afloop. De definitieve overgang naar de Italiaanse club werd aangekondigd in mei 2025.