Manchester City will need to display all their attacking strength next week if they are to remain in the Europa League.
They are chasing a two-goal deficit after former Chelsea striker Andriy Shevchenko and Oleh Gusev handed Dynamo Kiev a useful advantage in this last-16 first leg match.
To complete a frustrating night for manager Roberto Mancini, Mario Balotelli came off in the second half with the Italian striker claiming to be unwell.
After a bright start City showed nothing like the kind of form that marked them down as tournament favourites.
They knew it would be a tough test in freezing conditions as Dynamo went into the match having lost only one of their past 16 games.
With Carlos Tevez on the bench Gareth Barry was handed the captain's armband.
David Silva threaded the ball through to Micah Richards in the 11th minute only for goalkeeper Olexandr Shovkovskly to block his path.
Balotelli then tried to release Edin Dzeko in the 18th minute only to put too much weight on the pass and the ball drifted out of play.
City kept up the momentum and won a free-kick 25 yards out but Aleksandar Kolarov sent his effort into the goalkeeper's body.
Dynamo took the lead with their first attempt on goal in the 24th minute when Shevchenko poked home following a cross from Andriy Yarmolenko.
Shevchenko's goal rocked City with the striker showing that at 34 he has not lost his scoring instincts.
The home side were growing in confidence and this was a testing spell for City.
Dynamo after all had hammered Turkish side Besiktas 8-1 on aggregate in the last round to progress in style.
Shevchenko then cut the ball back from the byline into the area in the 40th minute after an incisive move.
However Pablo Zabaleta was well positioned and cleared the ball to safety to City's relief.
Back came Dynamo and Gusev dragged a shot wide of the post on the stroke of half time from 18 yards.
Balotelli was late arriving for the start of the second half and appeared to be in some distress.
He was clutching his face with reports on TV stating the Italian striker was claiming to be unwell.
Mancini, however, was in no hurry to take him off and Balotelli suffered further misery in the 54th minute when he was booked for a challenge on Ayila Yussuf.
Three minutes later Balotelli headed for the dressing room and was replaced by Tevez.
City almost drew level in the 59th minute when Barry laid the ball back to Yaya Toure on the edge of the area.
He struck his shot sweet and true only for the goalkeeper to get down quickly and turn it around the post.
Dynamo continued to look dangerous on the counter attack and Artem Milevskiy got into a good position only to deliver a weak shot that Hart saved comfortably.
City hit back and Joleon Lescott tried his luck on goal in the 68th minute only for Shovkovskly to make the save.
City's troubles increased in the 77th minute when Dynamo forged 2-0 ahead after poor defending.
Richards failed to deal with a flick on from Milevskiy and Gusev smashed a volley home from eight yards.
Tevez gave City some dynamism but they were unable to pull a goal back and there is much work to be done next week if their European campaign is to continue.