Substitute Raheem Sterling scored the first goal of the game midway through the second half as Pep Guardiola's side finally wore down the Croatians and Phil Foden added a second in injury time to make it two wins from two.
Better finishing could have made this a much more comfortable evening, but points on the board matters more at this early stage.
Whereas everything City hit against Watford in our last home game seemed to go into the net, the opposite proved to be true in the first half against Dinamo.
It proved a frustrating first half, with chance after chance going begging, despite some neat approach play.
Bernardo saw a couple of early efforts go wide, as did Sergio Aguero and David Silva volleyed wide from close range, but it was Ilkay Gundogan who went closest with a fierce shot from just inside the box that thundered off the crossbar.
Dinamo had set up to defend in numbers and as the half-time whistle went with the game still goalless, the Croatians’ plan appeared to be working.
The pattern continued in the early second-half exchanges, with Dinamo defending deep and in numbers – they certainly looked better than a side who had gone 15 Champions League away games without victory, losing 12 of them.
But the pressure finally paid off.
Riyad Mahrez, fresh from switching flanks, found space on the left and sent in a low cross that Sterling bundled home with 65 minutes on the clock.
The relief was palpable.
The Blues chased a second and were twice denied possible penalty shouts – one by VAR – but the second goal wouldn’t come – not that this result ever really looked in any serious doubt.
And in added time, Foden made sure it wasn't, with a smart low shot after fine work by Sterling.
Patience the key in group stages
It wasn’t stellar stuff from City but amassing as many points as quickly as possible in the group stages is all that really matters.
We created enough chances to win two games, but in front of goal, it wasn't necessarily our night.
Dinamo were disciplined and defended well so getting over the line was the main thing and, thanks to Sterling and Foden, it eventually came.
Star man: David Silva
The maestro ensured there was no drop in tempo, even when Guardiola's men continually came up against a brick wall of yellow.
What it means…
City go top of Group C with maximum points from two games – and already have a three-point lead of Dinamo and Shakhtar, who also won this evening against Atalanta.
Premier League action returns on Sunday with a home clash against Wolves at 2pm (BST).
Then, many of our players will jet off around the globe for the international break.