The game was even in the opening 20 minutes, with Fabio Borini squandering a great chance from a Raheem Sterling cross, before Carlos Tevez hit the far post from the acutest of angles.
The deadlock was broken in the 34th minute when Martin Skrtel thumped home a header from a Steven Gerrard corner.
The first real chance of the second half fell to Luis Suarez but the Uruguayan was only able to toepoke wide from Borini's pass.
Roberto Mancini brought on Jack Rodwell to push Yaya Toure further up the pitch and it immediately paid off as the Ivorian equalised on 63 minutes, although it was somewhat scrappy.
However Liverpool were back in front just three minutes later, with Suarez curling home a wonderful free-kick, however the initial decision to award it looked controversial.
Skrtel went from hero to zero on 80 minutes as his shocking attempt at a backpass allowed Tevez to round Pepe Reina for his 100th goal in English football.
In the closing stages City looked more likely to get the winner, but neither side could grab the third goal and had to settle for 2-2.