Kompany has not started a match for City since picking up an injury against Newcastle on 27 December, and replaces John Stones at the heart of the City defence.
Sergio Aguero, meanwhile, is dropped to the bench, and with Gabriel Jesus still ruled out, Raheem Sterling will lead the line in a central role.
Aguero's absence means Bernardo Silva keeps his place from Tuesday's win over Bristol City, but David Silva is ruled out.
In total Pep Guardiola makes four changes from the team that secured a place in the Carabao Cup final, with Danilo and Ilkay Gundogan joining Kompany and Sterling in coming into the side.
Claudio Bravo keeps his place in goal, with the Chile international having deputised for Ederson in all of City's domestic cup matches this season.
Cardiff City: Etheridge; Richards, Morrison, Ecuele Manga, Bennett; Paterson, Ralls; Grujic, Hoilett, Mendez-Laing; Zohore.
Subs: Murphy, Tomlin, Feeney, Plikington, Halford, Damour, Bogle.
Manchester City: Bravo; Walker, Kompany, Otamendi, Danilo; De Bruyne, Fernandinho, Gundogan; Bernardo, Sterling, Sane.
Subs: Ederson, Stones, Adarabioyo, Mangala, Zinchenko, Brahim, Aguero.