In the end the game finished all square in Manchester - a first point for the Citizens in this fixture in five attempts and enough to keep them in third, one point ahead of their opponents.
Liverpool had three pen appeals turned down in the first half, but it was City who arguably had the biggest shout of the lot when Aguero was held back by Joel Matip inside the area.
The first big chance of the afternoon fell the way of David Silva, who could only direct his half-volley wide of the target after getting on the end of a loose ball in the box.
Man City really should have opened the scoring 37 minutes in following some nice interplay that saw Silva slipped through, with the Spaniard looking up and squaring it to Raheem Sterling in front of goal.
The former Liverpool product failed to connect with the ball from just a couple of yards out, however, with Milner doing enough to put him off - illegally in the view of City's players, who felt that he clipped the winger's feet.
Fernandinho was unable to convert from the follow-up attempt, instead picking out the side-netting, and just a couple of minutes later it was Liverpool's turn to turn up the pressure.
Roberto Firmino almost marked his return to the starting lineup with a goal, cutting inside and forcing a sprawling stop out of Caballero, before Adam Lallana's well-struck effort was helped over the bar.
A pivotal moment in the contest arrived soon after the restart, as Gael Clichy bundled into Firmino to concede a contentious penalty - the experienced defender raising his boot and not getting enough of the ball.
Stand-in skipper Milner converted from the spot for the seventh time this season, sending Caballero the wrong way and picking out the bottom corner of the net.
Fatigue was beginning to play a part in the match for the remainder, with Liverpool looking the sharper of the two sides and coming close to a second when Firmino was denied by Caballero from another one-on-one.
A slight tactical tweak from Pep Guardiola, pushing Fernandinho into central midfield from his makeshift full-back position, saw momentum swing back in the Citizens' favour with a quarter of the game remaining.
It was Fernandinho's sprayed pass to Kevin De Bruyne that led to City's leveller, coming after Aguero swept the ball home from the Belgian's inch-perfect delivery.
Aguero, who has now scored in all five of his home league appearances against the Reds, almost added a second only to lose his footing at the vital moment, while De Bruyne picked out the upright after latching on to the loose ball.
The chances kept on coming in the closing stages of the contest, the best of which saw Lallana somehow fail to connect with the ball when picked out by Firmino just five yards out.
Firmino and Aguero blasted wide when well positioned in the final throes, and the latter also volleyed over the bar from the last big chance of the evening when left unmarked at the back post, meaning that the spoils were shared at the Etihad Stadium.