Two first-half goals were enough to see Manchester City comfortably through to the FA Cup fifth round at Championship side Cardiff City.
Cardiff, roared on by a capacity crowd, made a bright start but were behind after only eight minutes thanks to a piece of inspiration from Kevin De Bruyne.
It came when Ilkay Gundogan was fouled on the edge of the box and, with Cardiff expecting De Bruyne to try a curler, he instead fired a low effort under the jumping wall and past keeper Neil Etheridge.
But Neil Warnock's side continued to try to cause problems and were close to levelling when Junior Hoilett's strike was fumbled by Claudio Bravo, who grabbed the ball when it seemed set to creep over the line.
With 20 minutes gone Hoilett was in the action again, his low cross zipping across the City area with neither Nathaniel Mendez-Laing nor Callum Paterson able to get the all-important touch.
City thought they had doubled their advantage when Bernardo Silva crashed home in the 27th minute only for Leroy Sane, in an offside position, adjudged to have been interfering with play.
However, there was no doubt after 37 minutes when Silva's inviting cross was headed down and in by the in-form Raheem Sterling.
As half-time approached, Cardiff's Joe Bennett was booked for a bad challenge on Leroy Sane when he could easily have been shown a red card, with Sane being replaced by Sergio Aguero at the break.
Sterling was denied the chance to add a third by a superb Sean Morrison challenge as the visitors continued to control proceedings, but Cardiff created a flicker of threat soon afterwards when Kenneth Zahore lashed a strike over the bar and then saw another held by Bravo.
Warnock brought on Anthony Pilkington for Zahore soon afterwards, and within moments of that Hoilett came close to pulling one back when his effort whistled narrowly over the bar.
As the final 15 minutes approached, Cardiff appealed in vain for a handball when a Morrison cross brushed off Kyle Walker, and soon afterwards De Bruyne came close to making it three for Manchester City when his strike was blocked.
Warnock rolled the dice again, bringing on Liam Feeney for Mendez-Laing, and the substitute produced a moment of danger with a threatening cross before the visitors' Danilo saw a late effort stopped.
In stoppage time, Cardiff were reduced to 10 men when Bennett picked up a second booking for a foul on substitute Brahim Diaz and was sent off.