Goals from Kevin De Bruyne and Leroy Sane were enough to lift City back into top spot, at least until Friday, when Jurgen Klopp’s team visit Southampton.
City now have a maximum of 13 games remaining in a potentially historic season that could see them add the Premier League, FA Cup and Champions League to the League Cup they lifted against Chelsea in February.
But, whatever the remaining two months holds for Guardiola’s team, they are back in the driving seat in the Premier League on 80 points, one ahead of Liverpool. Both sides have six league games remaining.
Guardiola, whose side play Brighton in the FA Cup semi-finals on Saturday, was able to make seven changes against Neil Warnock’s struggling side, resting key players in the process.
The alterations did not dull City’s attacking intent but Gabriel Jesus, chosen with Sergio Aguero having been left out as a precaution, was guilty of a string of first-half misses.
De Bruyne claimed the first goal, after just five minutes, from Aymeric Laporte’s through ball, with a strong run and blistering shot from a tight angle that left questions over Neil Etheridge, beaten at his near post.
Sane struck just before half-time, driving a technically brilliant low shot into the far corner after Riyad Mahrez’s cross had been cushioned into his path by Jesus.
– City domination –
But the Brazilian should have done better from any number of first-half chances, one coming after just 34 seconds when he slid in and narrowly missed converting De Bruyne’s low cross into an open net.
Mahrez forced Etheridge into a diving, full-stretch save with an early, curling effort, Jesus skied a shot over from 12 yards and the City striker, again, miscued a close-range effort, under pressure from two defenders, after more good play from De Bruyne.
Guardiola’s side also launched a breathtaking counter-attack that saw four of their players break against two from Cardiff only for De Bruyne to free Jesus who again wasted a shot that was deflected behind.
The only minor concern for Guardiola, with an eye on the remaining fixtures, was the loss of left-back Oleksandr Zinchenko after just 18 minutes to an apparent hamstring injury, although the introduction of substitute Kyle Walker hardly represented a downgrade.
City goalkeeper Ederson remained completely untroubled as the second half followed the same pattern.
Phil Foden, making his first ever Premier League start a month short of turning 19, saw his shot saved from just six yards out while De Bruyne’s long-distance free-kick bounced just wide.
Sean Morrison almost turned a De Bruyne cross into his own goal and, in one intoxicating five-minute spell after the hour, six good City chances came and went, Etheridge saving well from Foden twice, a Laporte header, Mahrez and Sane while Fernandinho struck a post for good measure.
By the time Oumar Niasse steered Cardiff’s first on-target shot of the evening directly at Ederson, after 74 minutes, the outcome had long since been decided and his shot even drew ironic cheers from his own supporters.
Download our app and read this and other great stories on the move. Available for Android and iOS.