Redan i den tredje minuten kunde City ta ledningen när David Silva pangade in ett inspel från Pablo Zabaleta.
I den andra halvleken hade City en mängd chanser att göra ytterligare mål, men fick nöja sig med ett från Sergio Aguero till 2-0, som blev slutsiffrorna.
- Vi missade många chanser. Matchen borde ha varit över 30 minuter tidigare, säger Pep Guardiola efter matchen.
- Vi har tappat många poäng i Premier League av den anledningen. Men vi behöver kanske det för att förbättras.
Ännu är det oklart vilka City får möta i semifinal, då man just nu är det enda lag som är klara att gå vidare. I de övriga kvartsfinalerna spelar Arsenal-Lincoln, Tottenham-Millwall och Chelsea-Manchester United.
Startelvor:
Middlesbrough: Guzan, Barragan, Bernardo, Gibson, Fabio, Clayton, Leadbitter, De Roon, Stuani, Traore, Gestede.
Manchester City: Bravo, Zabaleta, Otamendi, Stones, Clichy, Toure, Silva, De Bruyne, Sane, Aguero, Sterling.