Man of the match Kevin De Bruyne’s free-kick goal was the result of meticulous preparation by the Belgian playmaker.
De Bruyne admits he was surprised by Cardiff City’s playing style, but knew exactly what he was doing when he shot low at a free-kick 20 yards out.
Bluebirds players in the defensive wall jumped in unison and the ball ran neatly under their boots and into the corner past unsighted goalkeeper Neil Etheridge.
The goal was a replica of a De Bruyne finish against Bournemouth at home in the Premier League last season.
Manchester City staff provided information on the tendency of Cardiff defenders to jump when they try and block free-kicks – and De Bruyne did the rest.
“We were told before (about the wall) and we know all the details,” he said. “The wall was not nine metres (away). It was very close so I thought it would be easier to hit it under rather than over!”
Raheem Sterling’s first half header put the visitors 2-0 ahead in front of a near 33,000 capacity attendance and, for all Cardiff’s efforts, Pep Guardiola’s team were completely in control.
“The second-half was strange because they didn’t want to attack us,” said De Bruyne. “It was a little bit boring for half an hour. But that helped us conserve energy for the next game (v WBA on Wednesday).
“It was a different playing style to everyone else. The tactics we used were class because Vincent Kompany was always free and we opened up the midfield.
“Every time we pressed them we would play to the man who was marking that guy so we had a lot of space.
“We knew how they played. We just tried to concentrate on our football and they caught us a few times and that is football, but obviously Leroy Sane is injured now and hopefully that is not too bad.”
Bluebirds left-back Joe Bennett was fortunate to escape a red card for a late challenge on Sane, who was hurt by the challenge and looks likely to be out for a month.
Bennett was booked and then dismissed when he fouled Brahim Diaz late in the game. He will miss Saturday’s Championship match against Leeds United at Elland Road.
German winger Sane ran from Manchester City’s penalty area to the edge of Cardiff’s box before he was brought down by Bennett, a challenge which looked awful when TV replays were slowed down.
Cardiff manager Neil Warnock had sympathy over the first Bennett tackle, but was incensed that the former Aston Villa defender was booked for a second time and sent off.
Warnock said about the tackle on Sane: “It looks bad on the still, but he didn’t mean that at all.
“They’re so quick, that’s the problem. With the movement and everything else, you think you’re there and all of a sudden he’s gone.”
The Bluebirds boss, though, was scathing about the second booking, saying: “I was disappointed he got sent off. Obviously he doesn’t want to go to Leeds next weekend because it was an absolutely pathetic challenge for a player already on a booking.
“To do something like that I think is disrespectful to teammates.”
Manchester City had a Bernado Silva goal ruled out because the officials felt Sane was in an offside position and putting off goalkeeper Etheridge.
Television replays showed they were wrong and it was a perfectly good goal, while Guardiola said: “Sane will be out. I don’t know how long for, I am not a doctor.
“They [officials] have to protect the players.
“Not my players. All players.
“They [refs] are there to protect players. When there is fault, there is fault, and when it is dangerous, it is dangerous.
“I don’t understand the goal [Bernardo] that we didn’t get, but that is okay. We can accept that.
“But they have to protect the players. They have to do their job.”
The Bluebirds went out to play man for man marking, but the movement and intelligence of the away players made that virtually impossible. Joe Ralls seemed to be picking up De Bruyne, but he dropped deeper at times and was even occupying a left-sided position at one stage, leaving Ralls wondering whether to go with him or not.
The cup tie was an education for Cardiff, who understand far more about the progress they have to make if they are promoted to the Premier League next season.
Warnock and his team can now focus on their promotion target, while Manchester City fans are dreaming of their team winning four trophies.
They are 12 points clear at the top of the Premier League, are through to the last 16 of the Champions League, where they play Basel, and play Arsenal in the Carabao Cup final.
Their comfortable win against Cardiff means they are through to the fifth round of the FA Cup.
“We play a lot of competitions and no rest,” said Guardiola. “We are still fighting every game. So proud.
“No we cannot win all four. People ask me if we could be invincibles in the Premier League, I said no because we don’t have a large squad.
“Right now we must recover for West Brom and then Burnley. The important thing are the next fixtures.
“It is an illusion to think we can win all four. With this schedule it’s impossible.”
Cardiff made two changes to the starting line-up at Sheffield Wednesday. Callum Paterson and Nathaniel Mendez-Laing stepped in for Sol Bamba and Yanic Wildschut.
But the sheer class of Guardiola’s team ensured they had 78 per cent possession and dominated the match.
Junior Hoilett went close with a fierce shot from 20 yards which flew just over, while goalkeeper Claudio Bravo almost dropped a Hoilett cross over his line. He stopped the ball just in time.
Callum Paterson lost his marker and was close to getting a touch to a cross in front of goal, but just failed to make it.
It’s all or nothing for Cardiff now and they’ll be content with that. Warnock’s players are focused on maintaining their promotion challenge.
Bring on Leeds United.
Cardiff City: Etheridge, Bennett, Morrison, Ecuele Manga, Richards, Ralls (Damour 87’), Zohore (Pilkington 65’), Paterson, Mendez-Laing (Feeney 77’), Grujic, Hoilett. Subs not used: Murphy, Tomlin, Halford, Bogle.
Manchester City: Bravo, Walker, Danilo, Kompany, Sterling, Gundogan, De Bruyne, Sane (Aguero 46’), B. Silva (Diaz 88’), Fernandinho, Otamendi. Subs not used: Ederson, Stones, Mangala, Adarabioyo, Zinchenko.
Referee: Lee Mason.
Attendance: 32,339.