Kapustka speelde in de jeugd voor Tarnovia Tarnów, Hutnik Kraków en Cracovia Kraków. Hij maakte bij het laatstgenoemde team op 29 maart 2014 op zeventienjarige leeftijd zijn debuut in het eerste elftal, in een wedstrijd in de Ekstraklasa tegen Widzew Łódź.[2] Hij maakte op 8 november 2014 zijn eerste competitietreffer, tegen GKS Bełchatów.[3] Kapustka ontwikkelde zich gestaag verder en werd in het seizoen 2015/16 basisspeler bij Cracovia Kraków. Hij speelde uiteindelijk zestig competitiewedstrijden voor de club.
Kapustka tekende in augustus 2016 een contract tot medio 2021 bij Leicester City, de kampioen van de Premier League in het voorgaande seizoen. Dat betaalde circa €9.000.000,- voor hem aan Cracovia Kraków.[4] Kapustka kwam dat seizoen tot drie verschijningen in de FA Cup. Gedurende de competitie speelde hij geen minuut. Leicester verhuurde hem in juli 2017 vervolgens voor een jaar aan SC Freiburg, de nummer zeven van de Bundesliga in het voorgaande seizoen. Dat bedong daarbij tevens een optie tot koop.