Eintracht Frankfurt have made it four wins in four and progressed to the latter stages of the Europa League. A 1-0 win at home did the business for Bayer Leverkusen too. RB Leipzig, meanwhile, are still in a scrap.
Apollon 2-3 Eintracht Frankfurt
(Zelaya 71', 90+4' pen. — Jovic 17', Haller 55', Gacinovic 58')
Four games, four wins, 12 points and a spot in the next round with a couple of matches to spare. Eintracht Frankfurt's Europa League group stage could scarcely have gone better thus far, despite conceding a pair of late goals and Marc Stendera notching up a second bookable offense. Stendera, who might have had some cause to feel hard done by on both bookings, can take solace in the fact that he'll be missing a match that no longer matters for his club.
Apollon lost control of the game in a few sloppy minutes around the hour mark. Sebastien Haller finished off a textbook attack down the left flank, meeting the delivery at the near post. Moments later, a defensive error gifted the ball to Mijat Gacinovic in shooting range; he duly put the match out of the hosts' reach. Even the stoppage time penalty provided no real scare for Eintracht, as it was already clear it would be the last kick of the game.
Frankfurt fans' love affair with continental competition is still showing no sign of cooling off. More than 5,000 made the trip to Cyprus for Thursday's game, prompting the club to ask if it could really be considered an away match.
Leverkusen 1-0 Zurich
Leverkusen's narrow win against Zurich came in a largely insipid affair came courtesy, as it so often does in such games, thanks to a set-piece. Tin Jedvaj's strong near post header from a corner proved just the ticket for Leverkusen in a game that saw Charles Aranguiz return from a long-term injury to join captain Julian Baumgartlinger in the starting lineup.
Leverkusen spent most of the first half huffing and puffing but without really looking like blowing Zurich's house down. While the second half didn't include as much drama as the pair's earlier meeting, Heiko Herrlich's side did just enough and, thanks to a draw in Group A's other game, put them into the knockout rounds.
Celtic 2-1 RB Leipzig
(Tierney 11', Edouard 79' — Augustin 78')
The atmosphere's always lively at Celtic Park, but the match really came alive in the final 15 minutes. Having trailed for most of the match, RB Leipzig finally drew level after Konrad Laimer delivered a picture-perfect cross from the right flank. Jean-Kevin Augustin merely had to rise to meet it at the back post and redirect the ball past the keeper.
But within seconds of equalizing, Leipzig succumbed to a sucker punch from the kick off. Some fine work down the left from Scott Sinclair laid the groundwork, and Ryan Christie delivered the cross to re-establish the hosts' lead.
For Konrad Laimer, the pleasure of a fine assist was followed immediately by the pain of letting the opponents strike right back
There followed a furious final 10 minutes as Leipzig threw the kitchen sink at Brendan Rodgers' side. Kevin Kampl rattled the crossbar and a series of late corners followed, but Celtic were able to weather the storm.
Group B is wide open as a result. Salzburg are through with 12 points from four matches. But Celtic and Leipzig are almost dead even, both with six points from their first four. Leipzig have the slightest advantage, on goal difference, from their pair of direct encounters with the Scots. Controversially, Leipzig's next group game is against Salzburg, the other major Red Bull franchise in European football.