Match ends, Germany 2, Ukraine 0.
World champions Germany began their quest for a record fourth European Championship by beating Ukraine.
Despite a mercurial performance from Toni Kroos and an early headed goal from Shkodran Mustafi, they were troubled at the back at times.
Jerome Boateng cleared off the line superbly while keeper Manuel Neuer made several good saves before a late scare.
Yevhen Konoplyanka threatened for Ukraine but they tired, with Bastian Schweinsteiger adding a late second.
The Manchester United midfielder, who has not played since 20 March because of a knee injury, came off the bench in stoppage time and two minutes later scored a sweet half-volley from a swift counter attack.
After Poland beat Northern Ireland earlier on Sunday, Germany now top Group C. On Thursday they face the Poles, who beat them in qualifying for Euro 2016.
Germany show signs of vulnerability
With seven defeats in 18 games since winning the World Cup in Brazil two years ago, including against Republic of Ireland and England, the three-time European champions have looked shaky by their usual standards. Two of their three qualifying defeats in the past 10 years have come in reaching this tournament.
And there were times when they looked vulnerable against Ukraine, who have never previously beaten them in five attempts.
Germany could have added to their early lead, which came from a debatable free-kick after Yaroslav Rakitskiy appeared to get the ball when tackling Thomas Muller.
Yet Neuer was kept busy in the German goal and Boateng made a brilliant goal-line clearance after he diverted Konoplyanka's effort towards his own net.
Up front, Mario Gotze was isolated, and had the fewest touches of any player on the pitch. Fellow midfielders Muller and Mesut Ozil were not at their best, although the Arsenal midfielder crossed for Schweinsteiger's well-taken goal.
Joachim Low's side became more resolute at the back as the game wore on, and there is plenty of time for the team to find top form as the tournament progresses, which is a worrying thought for other teams.
Kroos the pass master
Like fellow Real Madrid midfielder Luka Modric, who was influential in Croatia's victory over Turkey earlier on Sunday, Kroos played like a man full of confidence after winning the Champions League last month.
Not only did he boss the game from the start in open play, his set-pieces were also deadly as he curled the ball in superbly for Mustafi to head in after 19 minutes.
Another brilliant pass from the former Bayern Munich player should have led to Germany doubling their lead but Sami Khedira's shot was straight at Ukraine goalkeeper Andriy Pyatov.
The 26-year-old hit the corner of the post and crossbar early in the second half and showed plenty of evidence that his performances will be integral to the success of Germany in France.
Ukraine afforded him plenty of space in which to do damage, but other teams will know they must get a lot tighter to him in order to disrupt Germany's supply line.
Ukraine pay for profligacy
Ukraine, who were only competing at their second European Championship after joint-hosting the tournament four years ago, reached Euro 2016 through the play-offs but did not look out of their depth against a team they have never faced at a major tournament.
They had the better opportunities to score in the first half and must have wished they could still call on the services of Andriy Shevchenko, who scored their only European Championship goals four years ago and is now part of Mykhailo Fomenko's coaching staff.
Once Rakitskiy tested Neuer with a free-kick after the break, Ukraine's inroads towards the German goal dried up. They almost equalised near the end when Mustafi headed over the advancing sweeper-keeper Neuer but Boateng got back quickly to thwart the danger.
Man of the match - Toni Kroos
Stats you need to know
- Shkodran Mustafi scored his first goal for Germany in what was his 11th appearance.
- Joachim Low has recorded his 88th win as Germany manager; only Sepp Herberger has won more games (94).
- Germany (P12 - W7 D5) have never lost their opening game in the European Championships and they have won more openers than any other nation.
What they said
Germany goalscorer Bastian Schweinsteiger: "It's just incredible. After all the injuries... something like this happens. I can't play 90 or 120 minutes yet but I'm feeling like I can play.
"I feel really good. If I stay healthy, I'll be able to play more."
Germany boss Jochim Low: "Bastian was delighted to make such a great comeback after so many weeks slogging to get back to fitness.
"We dominated - but it wasn't easy against a good Ukrainian defence, but we found solutions and so overall I'm very satisfied.
"The Poland game is going to be decisive as both teams have won and the result of that one will shape how the group finishes. Obviously we have a lot of players out injured but I think the players who did play did a very good job."
Germany face Poland on Thursday at Stade de France in Paris with Ukraine facing Northern Ireland earlier the same day in Lyon.
- 11DraxlerSubstituted forSchürrleat 78'minutes
- 19GötzeSubstituted forSchweinsteigerat 90'minutes
- 22ter Stegen
- 9KovalenkoSubstituted forZinchenkoat 74'minutes
- 10KonoplyankaBooked at 68mins
- 8ZozulyaSubstituted forSeleznyovat 66'minutes
- Martin Atkinson
- Shots on Target
Second Half ends, Germany 2, Ukraine 0.
Goal! Germany 2, Ukraine 0. Bastian Schweinsteiger (Germany) right footed shot from the centre of the box to the top right corner. Assisted by Mesut Özil with a cross following a fast break.
Corner, Ukraine. Conceded by Shkodran Mustafi.
Attempt blocked. Andriy Yarmolenko (Ukraine) left footed shot from outside the box is blocked. Assisted by Oleksandr Zinchenko.
Substitution, Germany. Bastian Schweinsteiger replaces Mario Götze.
Shkodran Mustafi (Germany) wins a free kick in the defensive half.
Foul by Andriy Yarmolenko (Ukraine).
Corner, Ukraine. Conceded by Manuel Neuer.
Corner, Ukraine. Conceded by Shkodran Mustafi.
Attempt saved. Mesut Özil (Germany) right footed shot from the centre of the box is saved in the centre of the goal. Assisted by Toni Kroos with a through ball.
Foul by Mario Götze (Germany).
Artem Fedetskiy (Ukraine) wins a free kick on the right wing.
Foul by Toni Kroos (Germany).
Taras Stepanenko (Ukraine) wins a free kick in the attacking half.
Attempt missed. André Schürrle (Germany) right footed shot from the centre of the box is close, but misses to the right. Assisted by Mario Götze.
Substitution, Germany. André Schürrle replaces Julian Draxler.
Attempt blocked. Jérôme Boateng (Germany) left footed shot from outside the box is blocked.
Corner, Germany. Conceded by Andriy Pyatov.
Attempt saved. Thomas Müller (Germany) right footed shot from outside the box is saved in the bottom right corner. Assisted by Mario Götze.