RB Leipzig secured the third place of Group A with a 2-1 win over Manchester City at the Red Bull Arena, thanks to goals from Dominik Szoboszlai and Andre Silva.
The home side was without their manager Jesse March on the sidelines because of the red card he received for his last match antics.
But, the Germans still managed to pick up a crucial victory to keep their European campaign alive.
Manchester City, who had already won the group, cut the deficit by half with a 75th minute strike from Riyad Mahrez, but failed to find the equalizer in the remainder of the match.
A win would not have done Club Brugge any good since Leipzig won in their match and nicked the 3rd place, but the Belgians were denied a consoling result before bowing out of Europe as PSG steamrolled them to a 4-1 defeat.
Lionel Messi and Kylian Mbappe both grabbed a brace to take the game way beyond Brugge’s reach.
Mats Rits pulled one back for the visitors, but Messi PSG’s three-goal minutes later from the penalty spot.
Ajax continues to rock
Ajax Amsterdam concluded a perfect Champions League group stage campaign as they picked up their sixth straight win with a 4-2 triumph against Sporting Lisbon.
Sebastien Haller opened the scoring with an 8th-minute penalty and also got his name into the history books, becoming the first player after Cristiano Ronaldo to score in all six Champions League group stage matches.
Sporting immediately responded through Nuno Santos, but Antony, David Neres, and Steven Berghuis restored and extended the Dutch side’s lead.
Bruno Tabata scored 12 minutes from time to make it 4-2.
Despite the loss, Sporting will progress to the next round ahead of Dortmund because of superior goal difference.
Atletico step up
Atletico Madrid made it to the knock-out stages with a remarkable 3-1 away win at Porto.
It was a match where tempers flew high as none of them could finish the tie with 11-men.
Going into the match, both teams had the opportunity to go through to the next round, which set up an enthralling 90 minutes at the Estadio Do Dragao.
The hosts were on the front foot and looked more likely to take the lead when the visitors drew first blood through Antoine Griezmann four minutes from the hour mark.
Yannick Carrasco saw red 11 minutes later, giving the hosts a numerical boost, which turned out to be a temporary one as Porto lost two in the following minutes as the referee sent off Wendell and Agustin Marchesin.
Goals from Angel Correa and Rodrigo De Paul in the dying minutes of the game added to the misery of the hosts, even though they pulled one back through Sergio Oliveira late on stoppage time.
Madrid too good for Inter
In a battle for Group D top spot, Real Madrid came out on top with goals from Toni Kroos and Marco Asensio.
Los Blancos were missing their star striker Karim Benzema, who was sidelined with a hamstring injury, but they did not have to wait for picking the locks of the Inter defence as Kroos put them ahead in the 17th minute.
Inter came close to equalizing as Marcelo Brozovic, and Ivan Perisic missed good chances to score.
But, Nicolo Barella’s red card followed by Asensio’s goal in the 79th minute made Real group champions.
Heartbreak for Milan
With Premier League fixtures coming in thick and fast, Jurgen Klopp chose to field a second-string Liverpool side at San Siro.
But, Milan failed to take advantage of the situation and pick up a vital win.
Fikayo Tomori put the home team ahead, but goals from Mohamed Salah and Divock Origi condemned Milan to a 2-1 defeat, crashing them out of the competition in the process.
Sheriff grinded out a 1-1 draw against Shakhtar Donetsk to grab the Group D third spot and carry on their European mission in the Europa League.
Borussia Dortmund’s 5-0 victory over Besiktas proved too little too late for their Champions League survival, and they will now have to focus on the Europa League.