Images from Wednesday's action in the UEFA Champions League.
Liverpool marched into the knockout stages of the Champions League with two games to spare after a convincing 2-0 victory over 10-man Atletico Madrid at Anfield on Wednesday guaranteed them top spot in Group B.
With four wins out of four, Juergen Klopp's side can now take their foot off the gas for the final two games of the group stage and focus their resources on their Premier League title push.
Liverpool have yet to lose in 16 matches in all competitions this season and their unbeaten run stretches back 25 matches to their April 6 loss to Real Madrid in last season's Champions League campaign.
"The first target was to get through this group. I didn't expect we would be through after four games but the boys did it and it's really well deserved," said Liverpool boss Juergen Klopp.
The only negative for Klopp's side was a hamstring injury to Brazilian forward Roberto Firmino in the second half.
A draw would have been enough for Liverpool to be sure of their passage to the last 16, but from the outset Klopp's side looked like they had nothing but victory on their minds.
Diogo Jota put the home side ahead in the 13th minute, nodding home at the back post after a great cross from the right by Trent Alexander-Arnold although Atletico coach Diego Simeone will surely have felt that his stationary defenders made the goal far too easy.
Alexander-Arnold was again the provider for the second eight minutes later when his low ball into the box was brilliantly met by Sadio Mane, who fired past Jan Oblak.
Liverpool were buzzing, first to the ball across midfield and quick to push forward in search of a third.
The Spanish side's troubles intensified after Felipe was sent off in the 36th minute for a deliberate trip on Mane that earned him a harsh straight red.
Mohamed Salah forced a good save out of Oblak before halftime with a stinging drive as Liverpool went in at the interval in firm control.
Jota thought he had his second and Liverpool's third, shortly after the break, but the goal was ruled out for offside after a VAR review.
There were some signs of life from the visitors after that reprieve and former Liverpool striker Luis Suarez looked to have reduced the deficit with a deflected shot that deceived Alisson Becker, but that effort too was annulled by VAR for offside.
The Spanish champions, who beyond that moment failed to test the Liverpool keeper at all, could have no complaints about the outcome, which leaves them in third place on four points, one behind second placed Porto.
Benzema double leads Real Madrid to ugly win over Shakhtar
Karim Benzema struck twice to lead Real Madrid to an unconvincing 2-1 home win over Shakhtar Donetsk on Wednesday and move the Spanish side clear at the top of Champions League Group D.
Real, who beat Shakhtar 5-0 in Ukraine last month, lead the standings with nine points, two more than Inter Milan who beat Moldova's Sheriff Tiraspol 3-1.
Real went ahead in the 15th minute when Vinicius Jr. stole the ball from a Shakhtar defender and set up Benzema to score with a powerful shot from inside the box.
Shakhtar equalised five minutes before halftime with a stunning counter-attack finished off by Fernando.
Benzema and Vinicius Jr. combined again for the Real winner just after the hour mark, the latter linking up well with Casemiro before teeing up the France striker to find the net again.
"It’s hard when you play a game every three or four days, the team felt a little bit of fatigue. But sometimes you just have to win, even if you win ugly," Benzema told reporters.
Shakhtar created opportunities, Allan Patrick giving Real an early scare when his powerful strike from outside the box crashed against the post.
Fernando had a good chance to put Shakhtar ahead just before halftime from another counter-attack but he was denied by Real goalkeeper Thibaut Courtois.
The visitors continued to cause problems for the record 13-times European Cup winners but Vinicius Jr. and Benzema ensured that Real secured the three points.
Manchester City ease past Brugge after slow start
Manchester City got back to winning ways with a 4-1 victory over Brugge to move to within sight of the Champions League knockout rounds although it was not a trouble-free night for Pep Guardiola's side on Wednesday.
In the end, goals by Phil Foden, Riyad Mahrez, Raheem Sterling and Gabriel Jesus earned a comfortable enough victory to leave City top of Group A with nine points after Paris St Germain could only draw with RB Leipzig.
But there were periods after a John Stones own goal gave Brugge an early equaliser in which City looked uncomfortable.
The Belgians had several decent opportunities before Mahrez headed Pep Guardiola's side back in front in the 54th minute. Sterling gave City breathing space with a tap-in after 72 minutes and the hosts were able to coast home.
Substitute Jesus gave the scoreline an emphatic look as he added the fourth with the last kick of the game.
City, who suffered a surprise Premier League defeat by Crystal Palace at the weekend following last week's League Cup exit, need only one point from their remaining two games to secure their last-16 place.
Brugge are in third spot with four points.
City began in confident fashion and went ahead when Foden tapped in from close range from Joao Cancelo's pass in the 15th minute.
But they were stunned two minutes later when Hans Vanaken's shot was well saved by Ederson but Bernardo Silva's attempted clearance struck Stones in the head and the ball rebounded into the net.
City lacked their usual fluency and Brugge threatened on the break.
The visitors had a glorious chance to go ahead when Charles De Ketelaere missed the target from close range shortly after the interval and they were made to pay a minute later when Mahrez headed in Cancelo's cross to calm City nerves.
A fluent City move ended with Ilkay Gundogan squaring for substitute Sterling to convert to end a 12-match goal drought.
Jesus got in on the act when he stroked home another Cancelo assist and the English champions' night got even better as news of a late Leipzig equaliser left them top of the group from PSG by one point.
Brugges can take heart from a positive display and while they are not mathematically out of the running for a top-two spot, De Ketelaere said the priority was now finishing third.
"We showed a good reaction in the first half with that equaliser. After that they didn't really create good chances anymore in the first half. But yes, in the second half they kept putting pressure on," he said.
"It is now up to us to show that we deserve a place in the Europa League."
Shakhtar are bottom of the group standings with one point.
Porto earn draw at AC Milan to leave Italians on brink of exit
AC Milan earned their first Champions League point of the season with a 1-1 draw against Porto at San Siro on Wednesday, but the result left the seven-time European champions on the brink of elimination.
Luis Diaz struck after six minutes to put the Portuguese side in front and they dominated the first half against an under-par Rossoneri side.
An own goal from Chancel Mbemba drew Milan level after the break and Zlatan Ibrahimovic had a goal ruled out for offside, but the Italians' wait for a victory goes on.
"It’s tough against teams who are used to Champions League football like Porto or Atletico Madrid. Experience is important," Milan striker Olivier Giroud told Canal Plus.
"We are a young team but I don’t want to make excuses. We also needed a little more luck. We have played some good matches.”
It is the first time in Milan’s history that they have failed to win any of their opening four Champions League games.
They now must pick up maximum points in their remaining Group B games away to Atletico and at home to Liverpool to stand any chance of progressing to the last-16.
Porto rose to second place with five points, four ahead of bottom side Milan.
Group leaders Liverpool beat Atletico Madrid 2-0 to seal top spot with 12 points, leaving the Spaniards third with four points.
"Unfortunately, we couldn't win. I'm not happy, I hate moral victories, but we have to accept it. We were up against high-quality opposition," Porto coach Sergio Conceicao said.
Rossoneri coach Stefano Pioli sprang some surprises by leaving regular starters like Ibrahimovic, Franck Kessie and Simon Kjaer on the bench, possibly with an eye towards Sunday’s crucial Serie A derby against rivals Inter Milan.
The hosts were on the back foot from the start, as Evanilson threatened by shooting into the side netting inside the opening minute before Marko Grujic won the ball high up the pitch and picked out the unmarked Diaz, who finished calmly.
Grujic was twice denied by Ciprian Tatarusanu saves, while a Giroud shot that required a smart stop from Diogo Costa was the Rossoneri’s only chance of note before the break.
Porto were inches away from doubling their advantage early in the second half when Evanilson’s header hit the top of the bar, but Milan fought their way back into the game against the run of play in the 61st minute.
Giroud’s shot was saved by Costa but parried into the path of substitute Pierre Kalulu, who fired the ball back across the face of goal and Mbemba stuck out a leg to divert it into his own net.
Ibrahimovic’s introduction for the final 15 minutes injected some spark as the Swede netted on a rebound after his initial shot was charged down by Costa, but the goal was disallowed.
Wijnaldum scores first PSG goals in draw at Leipzig
Georginio Wijnaldum scored his first two goals for his new club Paris St Germain on Wednesday but a stoppage-time penalty for RB Leipzig rescued a 2-2 draw in their Champions League Group A game.
The Dutchman, who had struggled this season after joining from Liverpool, struck in the 21st minute and headed in another goal six minutes before halftime.
Leipzig, eliminated from competition with just one point from four matches, had taken the lead through Christopher Nkunku in the eighth minute and they missed the chance to double it when Andre Silva's 12th-minute penalty was saved.
Substitute Dominik Szoboszlai did better from the spot in second-half stoppage time, however, to rescue a point for the Germans, semi-finalists in 2020.
The French side, without the injured Lionel Messi, are in second place on eight points, one behind Manchester City. Club Brugge are on four with Leipzig bottom on one.
The Germans, looking for a win that would boost their slim chances of a knockout stage spot, had made a barnstorming start when Christopher Nkunku headed in at the near post eight minutes into the game.
The hosts could have doubled the advantage when they were awarded a penalty four minutes later but Silva's tame effort was stopped by keeper Gianluigi Donnarumma.
That proved to be the turning-point in the game as a quick PSG combination between Neymar and Kylian Mbappe allowed Wijnaldum to slot in the equaliser.
He struck again in the 39th, heading in his second goal of the evening and celebrating it only after a lengthy VAR review.
Mbappe went close to scoring on the stroke of halftime but keeper Peter Gulacsi pulled off a reflex save to deny the French striker, who also missed a golden opportunity early in the second half.
With the French backline far from solid, Leipzig constantly found the spaces to get into the box but they struggled with their finishing and Szoboszlai missed the target with their best chance.
The Hungarian, however, made amends when he stepped up to take a stoppage-time penalty, awarded for a foul on Nkunku, and equalised to earn his team's first point in the competition and keep them in the running for a spot in the Europa League.
Ajax win at Dortmund to qualify for last 16
Ajax Amsterdam came from behind to beat 10-man Borussia Dortmund 3-1 in Champions League Group C on Wednesday and advance to the knockout stages of the competition.
Goals from Dusan Tadic, Sebastien Haller and Davy Klaassen in the last 19 minutes maintained the Dutch club's 100 percent record after Marco Reus had converted a first-half penalty for the home team, who had to play for an hour with 10 men after Mats Hummels was sent off.
Ajax moved to 12 points at the top of the standings and booked a place in the last-16 with two matches to play. Dortmund share second spot with Sporting Lisbon on six points.
Brazilian winger Antony proved the inspiration for Ajax by providing the crosses for all their goals and he was involved in the controversial dismissal of Hummels.
They were left-footed crosses from the right wing, first for Tadic to steer the ball home at the back post in the 71st minute, then for Haller to continue his scoring form in the competition with a flicked header seven minutes from time before Klaassen completed the scoring.
It had taken the visitors time to break down their hosts and take advantage of their numerical superiority.
English referee Michael Oliver had no hesitation in red carding the experienced Germany defender Hummels in the 28th minute for a sliding tackle on the halfway line on Antony.
Television replays, however, showed that Antony had narrowly avoided contact but after a Video Assistant Referee review, Oliver’s decision was upheld to the astonishment of the home side.
Seven minutes later the referee was encouraged to check his initial decision to turn down Jude Bellingham’s appeals for a penalty after tumbling down in the Ajax penalty area as he was sandwiched in by two defenders.
Oliver reviewed the action on the screen at the side of the pitch and found that Ajax full back Noussair Mazraoui had impeded Bellingham’s attempt to shoot, then awarding the spot-kick that Reus converted in the 37th minute.
The Germans had been soundly beaten 4-0 by Ajax a fortnight earlier and were playing without top scorer Erling Haaland but showed tenacity and a fighting spirit before crumbling at the end.
Ajax joined Bayern Munich, Juventus and Liverpool as clubs with a 100 percent record and places in the next stage.