You are not permitted to download, save or email this image. Visit image gallery to purchase the image.
City's victory marked the first time a team have won 14 consecutive English top-flight games in the same season and ended United's run of 40 home games unbeaten in all competitions.
Pep Guardiola's side took the lead in the 43rd minute through David Silva but poor defending allowed United to hit back immediately with Marcus Rashford grabbing an equaliser before the break.
Nicolas Otamendi volleyed in the winner on the half-turn nine minutes into the second half.
City now have 46 points from 16 games, with United staying second on 35, and look like the title is theirs to lose even if Guardiola was not about to get carried away.
"We won because we were better. We are still in December, if we have 11 points (lead) when we play the second derby in April then maybe I will tell you that we have the title," said the Spaniard.
Champions Chelsea, who lost 1-0 at relegation-threatened West Ham United on Saturday, are third on 32 points, with Liverpool squandering a chance to overtake them and staying fourth on 30.
Liverpool manager Juergen Klopp fumed after his side's draw, with Everton's former England captain Wayne Rooney equalising from the penalty spot after a sensational first-half goal by Mohamed Salah.
"The other team was not even in our box, I don't know if they had a shot on target apart from the penalty. To give them an open door like this, in my understanding, that's not okay," said Klopp.
"There are greater catastrophes on this planet than getting a point after a game like this but it feels not too good," added the German.
Salah's 42nd-minute stunner sent the Egyptian clear of Tottenham Hotspur's England striker Harry Kane as the league's top marksman with 13 goals. Kane had scored twice in a 5-1 victory over Stoke City on Saturday.
Rooney's goal was his first in a Merseyside derby, a match he last featured in almost 14 years ago before moving to Manchester United.
"It's always nice scoring against Liverpool, whoever you're playing for," he said.
In the day's early match, Southampton and Arsenal also drew 1-1 with Charlie Austin putting the hosts ahead in the third minute at St Mary's and Olivier Giroud heading in a late equaliser after coming on as a second-half substitute.
It was the 17th time Giroud had scored as a substitute for Arsenal, equalling Norwegian Ole Gunnar Solskjaer's record with Manchester United for most goals scored off the bench for a single club.
City dominated possession at Old Trafford, showing they have grit as well as class even if the performance was not a classic display of the manager's attractive passing football.
Jose Mourinho's team selection had suggested a more expansive approach, with Anthony Martial and Rashford supporting central striker Romelu Lukaku, but the Portuguese was left with a bitter taste.
"It is a significant distance," he said of City's lead, before being asked if his team could make it up.
"I don't know. I know we can win next Wednesday (against Bournemouth)."
Like Klopp, Mourinho was also upset with the referee -- in this case for not awarding a penalty to his side in the 79th minute when Ander Herrera went down in the box under pressure from Otamendi.
"My first reaction is I feel sorry for referee Michael Oliver because he had a very good match but unfortunately he made an important mistake," he said.
"The result was made with a big penalty not given... Michael was unlucky because it was a clear penalty."