Eintracht Frankfurt came from behind to defeat Bayer Leverkusen on their return to the Bundesliga.
Stefan Kiessling gave Leverkusen the lead after half an hour but Frankfurt were unfortunate not to find an equaliser before the break.
Stefan Aigner levelled in the 57th minute before Martin Lanig headed in a winner in the 82nd minute giving Armin Veh's side a winning start to life back in the top flight after one season in the second tier.
Kiessling missed the first chance of the game in the sixth minute when his shot was tipped over for a corner by Kevin Trapp. Alexander Meier wasted an even better opportunity at the other end in the 17th minute when he pounced on a weak punch from Bernd Leno only to send his shot high into the Frankfurt sky.
The game swung from end to end with Kiessling and Meier exchanging efforts. It was the Leverkusen and Germany striker Kiessling's turn again in the 19th minute, but his shot was no threat for Trapp.
But Kiessling did put Leverkusen in front on the half-hour, the striker following up to apply the finish after Trapp could only parry Karim Bellarabi's shot.
Aigner's then had a goal ruled out after the linesman adjudged the ball had crossed the goalline before reaching him, while Meier saw a decent penalty appeal turned down when he went down after lobbing the ball past Leno.
Frankfurt channelled the frustration of those two incidents into a positive response in the second half and they were rewarded when Aigner levelled after Leno could only parry Takashi Inui's shot. Both sides pushed for a winner, but it was the home team who found it with Lanig leaping high to meet Stefano Celozzi's cross sending a powerful header beyond Leno.