Bordeaux were looking for a win to keep their qualification hopes alive when they hosted Eintracht Frankfurt on Thursday night.
The home team enjoyed the better of the play in the first half but a stubborn Frankfurt defence restricted the number of chances on offer for Bordeaux.
Substitute Martin Lanig broke the deadlock in the 83rd minute and the late goal was enough to confirm Frankfurt's status as Group F winners.
Read below to find out how qualification was secured by the German club.
Good evening everyone. I'll be bringing you coverage of a crucial Group F encounter between Bordeaux and Eintracht Frankfurt tonight. Bordeaux need a win to keep their qualification hopes alive, while Frankfurt can book their spot in the knockout stages with a point.
BORDEAUX: Carrasso, Faubert, Henrique, Planus, Poundjé, Traoré, Sané, Rolan, Saivet, Maurice-Belay, Diabate
FRANKFURT: Trapp, Zambrano, Oczipka, Jung, Kempf, Flum, Rode, Barnetta, Schwegler, Joselu, Kadlec
Around 12,000 Frankfurt supporters have made the trip to France this evening. That really is a stunning effort by the Germans, who sound like the home fans before the game.
Bordeaux are lining up with obvious attacking intent as they look to stay in this competition. Frankfurt have been very impressive in the Europa League and they'll be tough opposition.
It looks like kickoff will have to wait for a few minutes. Those visiting supporters have let off a lot of flares in the away end and the smoke means that the players are barely visible.
Here we go then. Frankfurt get the game underway.
Lively start from the visitors as Planus is made to clear the ball under pressure from Kadlec, who has a big role to play this evening.
Diabate's first action in the game is to turn smartly on the edge of the box but his low effort is easily blocked by a Frankfurt defender.
You can barely hear the Bordeaux supporters next to the wall of noise coming from the visiting fans. Bordeaux have started well, though.
Pundje delivers a good cross from a free kick but Diabate can only head well wide of the target under pressure from Zambrano.
Frankfurt are passing the ball around nicely now as the tempo to the game increases. Rode fires a shot wide from the corner of the box but the referee pulls the game back for a foul earlier in the move.
Frankfurt seem to be quicker to the tackle in the early stages, with the visiting support clearly having an impact. No clear chances for either side yet.
Sane thinks he has created a good opportunity for himself on the edge of the box but the referee disagrees, and awards the visitors a free kick for a foul on Kempf.
Plenty of big tackles from both teams in the opening minutes but there's been a lack of quality in the final third of the pitch. Both goalkeepers have looked comfortable early on.
Bordeaux are starting to take control of proceedings now, with Sane dominating in midfield for the hosts. It's starting to rain now but that won't stopthe Frankfurt fans from singing.
Great defending from Kempf to make a block as Rolan threatened to get a shot at goal from the near post. Frankfurt look assured at the back as they clear the corner that follows.
Maurice-Belay displays some great skill to go past two Frankfurt defenders but he loses his composure in the box just as he prepared to cross the ball.
Frankfurt are gifted a free kick when Sane brings down Flum but Barnetta's delivery is easy for Carrasso to collect when he comes off the line.
Neither side are asking too many questions of the other in the first half. Not many chances to report from the Stade Chaban-Delmas.
SAVE! Bordeaux should be ahead when Maurice-Belay chips the ball to Saivet but Trapp rushes off his line to make a great stop from close range.
That was a big opportunity for Bordeaux and they need to take those chances if they are to keep their qualification hopes alive tonight.
Bordeaux have another good opportunity to make a breakthrough when Faubert picks out Diabate but the forward wastes too much time on the ball and the move breaks down.
It's certainly not been a classic first half of football in France. Bordeaux have looked more dangerous but both teams are still trying to win the midfield battle.
At times, Bordeaux have been guilty of attempting the long ball towards Diabate too often. Frankfurt look happy defending against the direct approach.
I'm not sure if there's a Frankfurt supporter not wearing orange tonight. They've been a bit quieter in recent minutes due to the lack of attacking play from their side.
Bordeaux win a corner and Rolan whips in a good cross. Diabate is the clear target and he rises highest inside the box to head wide of the far post. He should do better from that position.
Diabate once again climbs well to head the ball on towards Henrique, whose wild effort sails wide of the target from the left side of the box.
It looks like Frankfurt have set up their first chance of the game when Kadlec collects the ball inside the box but the flag is raised before he can threaten the goal.
Brilliant work from Poundje on the left wing as he shows a good change of pace to earn himself some room. However, his cross into the box is wasted by Diabate, who fails to make contact with the ball on the volley.
Faubert is beginning to find some space on the right and his cross causes a few problems for the visitors. The ball eventually drops to Traore, whose shot from 12 yards is blocked.
YELLOW CARD! Rode receives the first booking of the match following a cynical foul on Maurice-Belay as Bordeaux looked to launch a counter attack.
Bordeaux are the side asking most of the questions but it doesn't look like they'll break the deadlock before the half time whistle arrives.
Both of these teams really need to improve in possession. The managers will be furious with how their sides have looked after the ball in the first half.
HALF-TIME: BORDEAUX 0-0 FRANKFURT
It's not been a first half which will inspire many youngster to start kicking a ball around. Not many goalscoring chances to speak about. Frankfurt know that another goalless 45 minutes will see them through to the knockout stages.
It's also goalless between Apoel Nicosia and Maccabi Tel Aviv in the other game in Group F this evening.
Bordeaux have certainly been the more positive of the two sides in this game but they must do better in the final third of the pitch to find the goal they desperately need. Remember, the hosts need a victory tonight.
Just a few minutes before the restart in France. Frankfurt need to show something more going forward because playing for the draw could be dangerous.
The players are returning to the pitch now. Bordeaux will get the game back underway.
SUBSTITUTION: Both sides made a change during the break, with Gregory Sertic replacing Planus for the hosts. Stephan Schrock is on for Frankfurt's Joselu.
YELLOW CARD! Poundje receives a booking for a late takle on Schrock as the substitute looked to start an attack for the visitors.
CHANCE! Oh my word, what a miss! Barnetta's free kick is headed on to Kadlec, who has the six yard box to himself but still somehow fires wide from close range. How has he not given Frankfurt the lead?
Faubert uses his pace well on the right before delivering a cross towards the back post. The first ball is cleared and Sertic's shot from the edge of the box is blocked by Schwegler.
SHOT! A loose ball falls to Faubert, whose powerful effort is straight at Trapp. Easy stop for the visiting goalkeeper.
Kadlec is looking to cause problems with his running in behind the Bordeaux defence but he might live to regret that shocking miss just a few minutes ago.
YELLOW CARD! Oczipka is the latest player to be cautioned when he pulls back Saivet on the right wing.
SAVE! Great effort from Saivet on the edge of the box to attempt an overhead kick. Trapp makes the save but the shot may have been drifting wide anyway.
The wait for a goal goes on as the Frankfurt supporters continue to make the noise in the away end. Bordeaux need to find Saivet and Maurice-Belay more often. They've been the most dangerous players this evening.
Can anyone produce the piece of quality this game needs? Sertic cuts in from the left but his shot is very poor and he fails to trouble Trapp.
Faubert breaks free on the right again and he delivers an inviting cross into the box. However, Maurice-Belay commits a foul at the back post and the move breaks down.
SAVE! Big, big chance for the hosts. Frankfurt fail to deal with a long ball over the top and Diabate is through on goal. The forward fails to control the ball at the first time of asking and Trapp makes a good save when a shot is eventually unleashed on the stretch.
SUBSTITUTION: Jussie is off the bench for Bordeaux to replace Maurice-Belay.
YELLOW CARD! Schwegler is the third Frankfurt player to be booked when he chops down Rolan in midfield.
SUBSTITUTION: Rode's night is over for Frankfurt as Martin Lanig comes off the bench.
SHOT! Much better from the away side as they break away with good pace. Barnetta cuts in from the left and ignores the support to fire an effort straight at Carrasso.
Bordeaux win a free kick in a good position and it's Sertic who curls in the delivery. Diabate is gifted too much space in the box but his header at Trapp is too weak to cause a problem.
Both teams are beginning to show a bit more attacking intent in the latter stages of this game but will either find a winning goal?
YELLOW CARD! Faubert has plenty of space in front of him but he needlessly hits Lanig with a flailing arm and is booked.
The noise in the away end increases when Frankfurt win a corner. Schwegler collects the ball when Bordeaux clear to the edge of the box but the visiting captain fails to test Carrasso with a wild effort.
SUBSTITUTION: Ludovic Obraniak can change the game quickly and he's been trusted to make the difference in the closing stages as he replaces Traore.
CLOSE! A free kick from Sertic causes problems when Trapp fails to clear with a punch. The ball drops to Faubert but his lobbed effort lands on the roof of the net.
SAVE! The ball is delivered to Rolan, who turns well on the edge of the box before seeing a low shot easily saved by Trapp.
SUBSTITUTION: Kadlec walks off following a difficult night and he's replaced by Srdan Lakic.
Diabate looks like he will test Trapp when he takes the ball down on his chest at the back post. However, Jung does superbly well to get a block in before the striker can unleash a volley.
GOAL! BORDEAUX 0-1 FRANKFURT (LANIG)
Frankfurt break the deadlock! It's a clever move from the visitors but Barnetta is gifted too much room inside the box to deliver a great cross to the back post, where Lanig arrives to tap in the opening goal. That makes the trip worthwhile for the 12,000 away supporters. The German club are just a few minutes away from securing top spot.
YELLOW CARD! Barnetta receives a caution when he frustrates the hosts by wasting some time after the referee had awarded a free kick.
It's very misty on the pitch now as the Frankfurt supporters let some more flares off again. Bordeaux are heading for the exit door with one game remaining.
The challenge from Bordeaux has certainly faded since falling behind. Diabate is trying to win every ball that is launched forward but the visiting defence are holding firm.
The fourth official confirms that two minutes of added time will be played.
SHOT! A long ball is well controlled by Diabate, who can't keep a volley down. That could be the last chance for the hosts.
FULL-TIME: BORDEAUX 0-1 FRANKFURT
What a night for the 12,000 Frankfurt supporters in France. It wasn't a classic game but Lanig's late goal earned the Germans all three points. The result means that Frankfurt have now won Group F.
Bordeaux now know that they will not be playing Europa League football in the New Year. It's been a difficult campaign for the French side, who must now concentrate on their domestic form.
Thanks for joining me this evening. I hope you've enjoyed the coverage from Sports Mole. Goodnight.