City, in third place, stayed a point ahead of the Merseysiders with a game in hand thanks to Sergio Aguero’s equalising goal.
Knocked out of the Champions League by
Liverpool, who had come into the game more after a slow start, were pegged back 18 minutes later when Aguero scored from Kevin de Bruyne’s fine low cross.
In a game that had been expected to produce plenty of goals, City made the better chances early on, with Simon Mignolet having to push De Bruyne’s low cross-shot round a post, and then stopping Leroy Sane’s effort with his feet, David Silva blasting the rebound carelessly over the bar.
It was one of number of strong penalty appeals by both sides – City claimed one next as Milner appeared to catch Raheem Sterling.
They continued to make the better chances after the interval and were rewarded on the hour.
Shortly afterwards, Firmino should have doubled the lead when sent clear by Phillipe Coutinho’s pass, but Caballero raced out to save.
City improved as they sought an equaliser, which came as Aguero beat Ragnar Klavan to De Bruyne’s perfect cross.
De Bruyne, who had been moved to the right flank in a tactical switch by Pep Guardiola, then hit a post and Aguero missed a good chance, but so did Lallana for the visitors.
“It was an intense game and both sides went for it,” Milner told Sky Sports.
“We are disappointed that when we have been up, we have not got three points, but a draw was fair in the end.
“It is not the easiest of days coming here, so we can’t be too disappointed with a point.”