Sergio Aguero inflicted more pain on Manchester United to delay the Red Devils' title celebrations.
- Related Content
The man whose goal won the Premier League for Manchester City last season struck 11 minutes from time to give the Blues back-to-back derby wins at Old Trafford for the first time in 41 years.
United's first defeat since November also ended their 18-match unbeaten run and cut their lead at the top of the Premier League to 12 points.
With only seven games remaining, it will almost certainly do nothing more than delay an inevitable switch of power back from the blue half of the city to red.
However, after James Milner's second-half opener had been cancelled out by a Vincent Kompany own goal, it at least gives credence to Roberto Mancini's claim that United are not quite deserving of their massive advantage.
Of all games, this was an odd one to be attended by supporters wearing half-and-half scarves.
Such is the antipathy between the two teams it is hard to imagine anyone having a soft spot for both, or at least not one they were prepared to admit publicly on an occasion such as this.
Yet, for all the predictable hype surrounding the fixture, this was a return to the pre-Sheikh Mansour days when city bragging rights were the only trophy at stake.
Not even Roberto Mancini truly believed United's 15-point lead could be overhauled even if his side won, so, as Vincent Kompany said last week, the prize was unofficial champions of Manchester.
And City were quickest to settle, exploiting an open approach from the hosts who, including Ryan Giggs, had five forwards in their starting line-up.
James Milner and Samir Nasri both had opportunities to be the first player to beat David de Gea in seven Premier League games, but City's best opportunity was denied them by a tremendous intervention from Phil Jones.
Labelled 'an animal' by Sir Alex Ferguson in his club's official magazine, Jones has struggled for form this season, which has been badly interrupted by a series of injuries.
He owed his chance to the absences of Nemanja Vidic and Jonny Evans. And Ferguson had caused to be thankful as Nasri peeled onto Rafael, the latest attempt to isolate a United full-back, and nodded Kompany's long pass down for Carlos Tevez.
The one-time darling of the Old Trafford faithful was just about to pull the trigger when in nipped Jones to make a magnificent clearance.
In response, United created little of note.
On his return from a groin strain, Wayne Rooney had a moan when Danny Welbeck failed to spot his run after embarking on a blistering burst from midfield.
Robin van Persie also skied an attempt to break his nine-match scoring drought.
But it was not until the dregs of that opening half, when Rafael ran onto Van Persie's flick and lifted the ball onto the angle of post and bar that United properly threatened.
And within five minutes of the restart they fell behind.
Giggs must shoulder the burden of responsibility for an ill-advised backheel that gifted possession to Gareth Barry deep inside United territory.
The visitors' rapid response allowed them to tee up Milner, whose low drive flicked off Jones and flew into the bottom corner.
United pride demanded a quick response. And they got exactly that as Van Persie fizzed a free-kick to the far post.
As Joe Hart failed to make any connection, Jones got his head to the ball, although it was not directed goalwards. It had to strike Kompany on the back to divert it in.
Yet City were the ones who responded more positively.
And after Nasri had fired over, the man he replaced, Aguero, put them back in front.
It was eerily similar to his decisive goal last May too as the Argentina star ghosted past Jones and Rio Ferdinand before firing into the roof of De Gea's net.
In the fractious latter stages, Gareth Barry was booked for starting a skirmish, Pablo Zabaleta's yellow-card challenge forced Ashley Young off and both Rafael and Antonio Valencia were cautioned for felling Barry.
It all felt slightly hollow though as City's fans sang about being the "pride of Manchester" whilst knowing their title is almost gone.