The Reds overwhelmed City in the opening 30 minutes thanks to goals from Raheem Sterling and Martin Skrtel. Luis Suárez then inexplicably avoided a second yellow card for diving in the second period, but City levelled through David Silva and a Glen Johnson own goal.
However, Vincent Kompany's wayward clearance fell to Philippe Coutinho to fire home the winner.
Liverpool players react to one of the biggest wins of their season
Here are some talking points...
THIS REALLY DOES FEEL LIKE LIVERPOOL'S YEAR
Manchester City's best defender was unfit, their best midfielder went off injured, their best striker was ring-rusty, Liverpool's best footballer avoided a red card and the winner came during a period of City domination. Such rubs of the green are, perhaps, a more reliable indicator of a team's title destiny than the wins they have registered. Liverpool were electric in the first half-hour, have played an enrapturing style of football this season and beaten both Manchester clubs, Arsenal, Everton and Tottenham at Anfield and scored 17 goals in the process, but they are enjoying a chunk of fortune they are unfamiliar with. For their rivals, that is the most ominous and telling factor.
Mark Clattenburg's appointment for this game was spun as a snub for Howard Webb in some quarters, when Webb has been an erratic official since the infamous 2010 World Cup final. Webb is also risibly reviled by Liverpool supporters for his perceived bias towards Manchester United, although Clattenburg, too, has a history with Liverpool that stems from taking advice from Steven Gerrard to send Tony Hibbert off in a 2007 Merseyside derby.
His performance at Anfield was execrable. Edin Džeko and Daniel Sturridge were both denied obvious penalties while Luis Suárez should have received a second yellow card for cheating. Pablo Zabaleta's trip on Sturridge came after the Suárez incident in what was the clichéd evening-it-up decision by a referee who also missed Martin Skrtel's handball inside his own area in stoppage-time.
Liverpool 3-2 City
MILNER MAY HAVE PLAYED HIMSELF INTO WORLD CUP SQUAD
It is a sentence seldom heard, but James Milner changed the biggest game of the Barclays Premier League season. Neat, sharp and incisive on the ball, he was an immediate antidote to City's languid first-half approach, galvanised David Silva and played key roles in both of City's goals.
Roy Hodgson has always valued Milner as an England squad member, yet the emergence of the younger players, some whom Milner played against at Anfield, has thrown his squad berth into question. This was one of the midfielder's most effective displays in a City shirt and he could not have timed it better.
Had Manuel Pellegrini not started Vincent Kompany he would have fielded either Joleon Lescott or Javi García alongside Martín Demichelis. It was worth the risk. Bamboozled by Raheem Sterling for the first, Kompany negligently allowed Martin Skrtel to lose him for Liverpool's second and calamitously assisted Philippe Coutinho's winner. For a world-class defender, he seems to have inherited the patriotic lionheart streak living in England when that supposed quality is a relic of a bygone era and worn as a badge of honour exclusively by John Terry. He was not fit at Anfield and his stubbornness may have cost City the championship.