Bayern were missing seven players including midfielder Joshua Kimmich and forward Serge Gnabry who are all in isolation because of Covid, meaning coach Julian Nagelsmann had no chance to rest his stars and had to start Lewandowski, Thomas Muller, Leroy Sane and the recently injured Kingsley Coman.
Nagelsmann named just four outfield players on the bench, all youngsters or fringe players.
Heavy snowfall and sub-zero temperatures in Kiev could not prevent Lewandowski scoring one of the best goals of his career.
In the 14th minute, the ball shot skywards after hitting the boot of Ukraine defender Illya Zabarnyi and Lewandowski reacted quickest with an unstoppable, acrobatic effort.
The Poland striker, who is among the favourites to win the Ballon d’Or award next Monday, scored his 82nd Champions League goal from 101 appearances.
The goal meant the 33-year-old became the first player to score in nine successive Champions League games twice, having also done it in August 2020.
“Mission complete, it was our goal to win here,” Bayern captain Manuel Neuer said.
“We’re happy to have won all our games with 15 points and we are looking for our next game against Barcelona (in two week’s time in Munich).
“Considering the circumstances, we did well, it was an important win,” added Neuer.
Only a stroke of luck kept Bayern in the lead soon after when Leon Goretzka’s attempted backpass across the snowy field bobbled up and over Neuer’s attempted kick and on to the post.
Coman scored his first Champions League goal of the season to double Bayern’s lead just before the break, shooting high into the net from a tight angle.
Neuer made several saves to keep Dinamo at bay in the second half, but a gap in the Bayern defence allowed Viktor Tsygankov to set up Denys Garmash for last-place Dinamo’s first goal of the group stage. Bayern held on for the last 20 minutes to keep the three points.