The champions bossed it from start to finish, taking an early lead through David Silva and doubling the lead after the re-start through Sergio Aguero.
Anthony Martial pulled one back from the spot before Ilkay Gundogan sealed the points in the dying moments.
City raced out of the blocks and were almost ahead inside two minutes.
Fernandinho found Bernardo Silva in a pocket of space in front of the United back-line and the Portuguese playmaker took David De Gea by surprise as he rifled a low shot just wide from 20 yards out.
United allowed City plenty of possession, but against the champions, it’s risky tactic and with only 12 minutes on the clock, the Reds were punished.
Raheem Sterling’s cross from the right looked over-hit, but Bernardo managed to hook the ball into the centre of the box where David Silva collected and then fired past De Gea to send the Etihad wild.
The remainder of the half was largely dominated by City, but with no major chances created as United sat back and invited pressure.
Two minutes before the break, Chris Smalling appeared to handle the ball as a corner came in but despite his arm being well up above his head, the referee either didn’t see it or thought it to be accidental.
It was the last talking point of an otherwise comfortable first period for the Blues.
It took City just three minutes to double the lead after the re-start.
Fernandinho won possession on the halfway line and gave it Bernardo who in turn fed Aguero.
The City striker took the ball to the edge of the box, played a one-two with Riyad Mahrez before firing a powerful angled drive past De Gea for his 11th goal of the season.
Sterling should have made it three shortly after, but after controlling Fernandinho’s clever through-ball, he perhaps waited too long, and the chance was gone.
United brought on Romelu Lukaku just before the hour-mark and the powerful Belgian immediately handed his team a lifeline as he chased a ball into the box and went over Ederson – the ref pointed to the spot and Anthony Martial halved the deficit.
Surely history wasn’t about to repeat itself with memories of last season’s derby loss immediately springing to mind.
The Blues continued to have the majority of the possession, creating half-chances here and there before Sterling played a clever ball to Sane who was inches from converting.
But the victory never looked in any serious doubt and four minutes from the end, the superb Bernardo picked out sub Ilkay Gundogan in the box and the German had time to control and then prod home the decider.
It was no more than City deserved.
Unbeaten Blues looking ominous
City remain unbeaten 12 games into the Premier League campaign after another impressive display.
Liverpool beat Fulham earlier in the day at Anfield and Chelsea drew 0-0 with Everton to maintain their unbeaten starts - and with Tottenham and Arsenal making solid starts as well, it looks as though the Premier League title race could be one of the most open and fascinating for years.
The Blues need to keep winning - especially the big games - and see who blinks first.
It's been a stunning start by the champions who look determined to, at worst, repeat last season's heroics - if not better them.
Star man: Bernardo Silva
Tireless shift by the City play-maker who claimed an assist for the first and third goals was involved in the second, too.
Aside from that, he worked hard and always made himself available throughout.
What it means…
City remain two points clear of Liverpool and four ahead of Chelsea.
"The first half was not so good, we played like we didn’t want to lose the ball. I don’t want to lose the ball, but I want to keep it with the intention to do something.
"We felt a bit of pressure because they want to do well in a derby, so that is normal.
"We were stable, scored the first goal, so good. We changed a little bit the way we should press - but the goal from Sergio helped us a lot. The last 30 minutes we played really well."
The last international break of the year means no game now for fortnight with the champions resuming a week on Saturday away to West Ham United.