City made some six changes from Saturday’s 3-1 win over Bournemouth, with forward Raheem Sterling among those on the bench.
Both goalkeepers were forced into action during the early exchanges, as first Ben Foster saved from City forward Bernardo Silva before Troy Deeney was denied by Ederson at the other end.
City, though, stepped up the pace and took the lead five minutes before half-time when Riyad Mahrez picked out Leroy Sane, who chested the ball in from close range.
Mahrez made it 2-0 early in the second half when sweeping home a low cross from Gabriel Jesus.
Watford set up a tense finale after Abdoulaye Doucoure bundled the ball in at the far post with five minutes remaining, but City closed out a 13th Premier League win.
Pep Guardiola’s side moved five points clear of Liverpool, who head to Burnley tonight.
Brighton overcame the dismissal of defender Shane Duffy to beat rivals Crystal Palace 3-1 at the Amex Stadium.
The Seagulls went in front after 24 minutes when former Palace frontman Glenn Murray converted a penalty.
However, Brighton were soon down to 10 men when Duffy was shown a straight red card for pushing his head into the face of Patrick van Aanholt as they squared up.
The hosts doubled their lead on the half-hour when substitute Leon Balogun smashed the ball in at the back post from a corner.
Brighton wrapped things up on the stroke of half-time when Florin Andone, who replaced the injured Murray, produced a determined run and finish.
Palace scored a late consolation through Luka Milivojevic.
Lucas Perez scored twice as West Ham beat Cardiff 3-1.
West Ham goalkeeper Lukasz Fabianski saved Joe Ralls’s 35th-minute spot-kick before Perez scored twice inside five minutes early in the second half.
Michail Antonio, playing in the right-back role, headed in a third for the hosts from a corner on the hour as the Irons chalked up a second straight league win, with Cardiff substitute Josh Murphy heading in a stoppage-time consolation.