Eintracht Frankfurt's bid for a top-four finish in the Bundesliga was further dented as Anthony Ujah's quickfire brace saw them beaten 2-0 at home by Mainz.
The deadlock was broken in the 53rd minute when Jean-Philippe Mateta got the better of David Abraham and delivered the ball to Ujah, who finished at the far post.
Ujah then added a second four minutes later, converting from close range after collecting Jean-Philippe Gbamin's cut-back.
The hosts, for whom Ante Rebic passed up a good opportunity in the first half when he fired over, applied pressure late on to no avail, with Jonathan De Guzman and Filip Kostic being denied by goalkeeper Florian Muller.
The result leaves Eintracht – who were beaten 6-1 at Bayer Leverusen in their previous league match and have not won any of their last five – in sixth place, a point behind fourth-placed Borussia Monchengladbach and fifth-placed Leverkusen.
Adi Hutter's beaten Europa League semi-finalists are at Bayern Munich, who will be looking to secure the title, next Saturday in their final match of the season.
Monchengladbach host Borussia Dortmund – two points behind Bayern in second – while Leverkusen are at Hertha Berlin.
ga('create', 'UA-72310761-1', 'auto', {'name': 'pacontentapi'});
ga('pacontentapi.set', 'referrer', location.origin);
ga('pacontentapi.set', 'dimension1', 'By Press Association Sport staff');
ga('pacontentapi.set', 'dimension2', '9b9dc6e2-35b3-4309-be6b-b4a49fdfbca6');
ga('pacontentapi.set', 'dimension3', 'paservice:sport,paservice:sport:football,paservice:sport:match-reports,paservice:sport:uk,paservice:sport:world');
ga('pacontentapi.set', 'dimension6', 'story');
ga('pacontentapi.set', 'dimension7', 'composite');
ga('pacontentapi.set', 'dimension8', null);
ga('pacontentapi.set', 'dimension9', 'sport:football');
ga('pacontentapi.send', 'pageview', { 'location': location.href, 'page': (location.pathname + location.search + location.hash), 'title': 'Eintracht Frankfurt\u2019s top-four hopes hit by Mainz defeat'});