Joachim Low's men fought back in the second half to claim a share of the spoils in what was a raucous affair in Kiev
Goals from Andriy Yarmolenko, Yevgen Konoplyanka and Serhiy Nazarenko bettered a screamer by Toni Kroos to put the hosts 3-1 up at the interval, but a second-half recovery saw Simon Rolfes and Thomas Muller salvage a draw for the visitors.
Germany controlled possession in the opening exchanges, but could not find the cutting edge to break down the spirited Ukraine back four. However, their constant pressure in the Ukraine half left them dangerously exposed at the back, and it was one such sequence that led to the opening goal of the match in the 28th minute.
After Ukraine won possession near the halfway line, a long searching ball found Andriy Shevchenko on the right flank against an under-manned German defence. His slipped pass released Artem Milevskiy towards the byline, and his cutback was poked home by Yarmolenko from close range.
Joachim Low’s men did not attempt to correct their vulnerability on the counterattack and Ukraine punished their high defensive line again nine minutes later to make it 2-0. Mats Hummels lost possession on the edge of the Ukraine area and Konoplyanka had a relatively unchallenged 80-metre charge towards goal, rounding Ron-Robert Zieler at the end of his run to double his side’s advantage.
However, Germany pulled one back within minutes through a great goal by Kroos. His through ball from midfield was headed away by the Ukraine defence, but he recovered to collect the loose ball and fire a rocket into the corner from 25-yards out.
Ukraine were not daunted by the setback, and restored their two-goal cushion two minutes later with an even better strike. Early substitute Nazarenko made an instant impact, collecting the ball some 30 yards from goal and releasing an unstoppable drive into the top corner to end the first-half on a high.
Germany emerged from the break with new defensive focus and reduced the deficit on 65 minutes through substitute Rolfes. Hummels met a corner from the right with a badly-executed turnaround volley, but his effort spilled into the path of the substitute, who bundled the ball home.
The visitors controlled play thereafter, and managed to level matters through the contribution of another substitute. Muller picked up the ball on the left flank and skipped easily past two Ukraine players before placing a well-struck effort into the back of the net from the top of the box.
Low’s men took over after the equaliser,and Ukraine were forced to dig their heels in to protect the scoreline. However, Germany’s vulnerability on the counterattack remained, and Ukraine twice went close to snatching a winner in the closing minutes.
First, Nazarenko failed to properly control a pass that would have put him clear on a two-on-one break. The substitute then put in a telling cross in injury time towards the unmarked Marko Devic that Zieler managed to stop with his legs.
Neither side could be separated, and a draw seemed to be a fair result. Germany continue their Euro 2012 preparations against the Netherlands in four days' time, while Ukraine welcome Austria.