The Spanish attacker, linked with a move to Real Madrid earlier this week, scored either side of half time on a comfortable night for the holders.
A near-perfect night for City, who have now kept out the opposition in eight of their last nine matches, was blemished late on when Kevin De Bruyne - making his second start of the season - left the field with an apparent knee injury.
Fulham had conceded 15 goals in a four-match losing run heading into this tie, and it was backs-to-the-wall stuff right from the off.
Fulham offered barely any attacking threat in the first half, though they did at least get one shot away 17 minutes in through Luciano Vietto's weak attempt from outside the box, which young City goalkeeper Arijanet Muric was equal to.
The Citizens had their deserved breakthrough goal with less than a quarter of the game played, as Diaz put his foot through a loose ball in the box, with the deflection off Aleksandar Mitrovic - who could have been braver with his defending - taking it past Rico.
Diaz was denied a second by a good Denis Odoi block in front of goal, while Danilo rifled the ball against the outside of the post from an angle and Sane thumped an even better chance over the bar when he could have returned the pass to Foden.
Pep Guardiola complained of profligacy from his players following his side's 3-0 win over Fulham in the league two months ago, and there was more of that on display in this rearranged tie as Foden guided a close-range header wide of the post and Gabriel Jesus failed to beat Rico after ghosting past a couple of opposition men.
Jesus was then wayward from a couple of headers early in the second period as the hosts continued to knock on the door for a second.
A failure to net the second meant that Fulham were still in the game come the hour mark, however, and Andre Schurrle sent out a warning shot with his tame shot down Muric's throat.
City were soon out of reach thanks to a second of the night for Diaz, though, with the youngster picking out the roof of the net after latching on to a loose ball once Jesus had hit the post from a one-on-one situation.
De Bruyne's injury in the final five minutes will be a big worry for Guardiola - the Belgian leaving the field after Timothy Fosu-Mensah landed awkwardly on his knee - but it was otherwise a night of few worries as his side set up a meeting with either Leicester City or Southampton in the quarter-finals.
MANCHESTER CITY (4-3-3): Muric; Danilo, Kompany, Stones, Zinchenko; Delph, Foden, De Bruyne (Gomes 86'), Diaz (Mahrez 77'), Jesus, Sane
FULHAM (4-3-3): Rico; Fosu-Mensah, Odoi, Ream (Le Marchand 69'), Sessegnon; Anguissa, Cairney, Seri; Vietto (Christie 89'), Mitrovic, Schurrle (Ayite 80')