Liverpool drew first blood on 13 minutes thanks to a Mo Salah penalty before Gabriel Jesus levelled just past the half-hour.
Just before the break Kevin De Bruyne missed a penalty after Joe Gomez had handled in the box and Jesus missed a header after the break and the game ended in a 1-1 draw.
Liverpool, seemingly playing 4-2-4, were straight into the attack and could have been ahead inside the first minute as Roberto Firmino raced through only for Ederson to get a crucial hand on the ball as his compatriot went around him.
The visitors were aggressive with a high press and City couldn't get into any meaningful rhythm but on 12 minutes, a moment of controversy that went the visitors' way.
Raheem Sterling was given a shove as he drifted past Diogo Jota and though he tried to stay on his feet, he then slipped inside the box - the referee waved play on, Liverpool broke and as Sadio Mane went down under a challenge from Kyle Walker, Craig Pawson pointed to the spot.
Mo Salah tucked the penalty away, but the City players were still protesting about the free-kick that should have been awarded - but decisions not going our way in this fixture in recent seasons is hardly new!
Sterling had a good chance to level on 26 minutes after Kevin De Bruyne whipped a low cross into the box, but he perhaps took a fraction too long and Allisson managed to block the shot and the danger was cleared.
Five minutes before the break, City missed a golden chance to take the lead when De Bruyne's cross from the right was clearly handled by Joe Gomes and after a VAR check and trip to the pitch-side monitor, Craig Pawson pointed to the spot.
Agonisingly, De Bruyne put the penalty wide with Alisson guessing wrong.
Almost on half-time, the Merseysiders went close again as Mane found Salah and he in turn found the over-lapping Trent Alexander-Arnold but Ederson was equal to his low shot, almost clawing it back off the line after his initial block.
It had been a breathless 45 minutes.
And there was no let-up after the restart as these two Premier League heavyweights continued to slug it out.
Jota should have done better when he collected a deflected shot before firing a weak shot that Ederson collected easily.
Then, on 55. superb play by Joao Cancelo who cut in from the right before sending a wonderful cross in that Jesus headed wide from six yards - had he directed it on target he would have surely scored.
As the game wore on, so the energy levels dipped on both sides - they had to - and the game was played at a slightly less frenetic pace.
City dominated the majority of the last half-hour but were left rue that missed spot-kick that could have edged this tense battle.
CANCELO IMPRESSES AGAIN
Joao Cancelo has impressed throughout the first few months of the campaign.
The Portuguese right-back - playing as left-back, let's remember - has added a new dimension to attacks down the left with his excellent technique and trickery.
At times he resembles a left winger with his stepovers and dummies, but he also creates chances.
His cross for Jesus just before the hour should have resulted in a goal, but it didn't detract from a fine display from the Portugal star.
And against one of the best attacks in Europe, he defended pretty well, too!