The Reds breathed an early sigh of relief as Raheem Sterling's close-range effort was excellently kept out by Alisson, but the Brazilian could do nothing about Kevin de Bruyne's left-footed strike seconds later as the ball deflected off Joel Matip and into the back of the net to give the hosts a critical early lead.
Liverpool managed to settle their nerves and they soon dragged themselves level through Diogo Jota after Andy Robertson's deep cross was pulled back for the Portuguese by Trent Alexander-Arnold, with the Reds striker finding the back of the net to make it 1-1 with less than 15 minutes on the clock.
Jurgen Klopp's side were shaky in defence as City exploited the space behind them, with Gabriel Jesus regaining the hosts' advantage after beating the offside trap and nudging Joao Cancelo's cross past Alisson to put City 2-1 up at the break.
Liverpool got back on level terms right at the start of the second half as Mohamed Salah found Sadio Mane's run with an impeccably weighted pass before the Reds forward found the back of the net with an excellent finish to make it 2-2.
Sterling had the ball in the back of the net after appearing to beat the offside trap and netting past Alisson, but VAR intervened to rule the goal out, with the former Reds winger marginally offside ahead of Virgil van Dijk.
Despite chances for City in the closing stages, it finished a point apiece as the two sides remain a point apart at the top of the Premier League table with seven games left to play.