Real Madrid cruised to a 3-1 home win over Liverpool, while Manchester City scored a late winner against Borussia Dortmund.
Real Madrid 3-1 Liverpool
Liverpool will have to produce another Champions League knockout stage comeback against Spanish giants after a chaotic and ill-disciplined display saw them lose 3-1 to Real Madrid.
Talk of revenge for their 2018 final defeat to Real had been banished pre-match but in truth they hardly came close to laying a glove on the 13-time champions, for whom Vinicius Junior scored twice either side of one from Marco Asensio.
The hosts were missing both first-choice centre-backs in Sergio Ramos, out injured, and Raphael Varane, who returned a positive Covid-19 test on the day of the game, but that barely mattered as Liverpool were so poor they were not tested.
Real never allowed Liverpool to settle into a rhythm with Vinicius, whose pace was a problem, heading an early chance just wide.
Toni Kroos then dropped deep to loft a 50-yard pass into the path of Vinicius, who controlled on his chest with his first touch and dispatched past Alisson Becker with his second.
Liverpool tried their own quick ball forward to release Mane and although the Senegal international went down on the edge of the area after a tangle with Lucas Vazquez, referee Felix Brych waved play on.
Twenty seven seconds later the ball was in the net at the other end as Madrid regained possession and hit back with a sucker punch.
Kroos immediately launched another ambitious ball down the left channel from deep which Trent Alexander-Arnold inexplicably headed into the path of Asensio who lobbed over Alisson.
Liverpool got the start – and the away goal – they wanted in the second half with Salah blasting home via the arm of goalkeeper Thibaut Courtois after Wijnaldum had driven forward from midfield and Diogo Jota had forced his way into the penalty area.
Jota headed wide a raking cross from Alexander-Arnold, whose last-ditch interception prevented Asensio scoring on a counter-attack from a Liverpool corner.
However, it was only delaying the inevitable as Vinicius swung the tie in Real’s favour, shooting through the legs of Nat Phillips with Alisson only able to help the ball into the net after defenders stood off him.
Manchester City 2-1 Borussia Dortmund
Phil Foden struck in the last minute as Manchester City snatched a 2-1 win in the first leg of their Champions League quarter-final against Borussia Dortmund.
The quadruple-chasing Premier League leaders had looked like they would have to settle for a draw at the Etihad Stadium when Marco Reus levelled for the German side six minutes from time at the Etihad Stadium.
But Foden, who had twice tested Dortmund keeper Marwin Hitz in the second half of a controversial encounter, hit back from close range as the clock ran down.
Having taken the lead through Kevin De Bruyne, City now have the edge heading into next week’s second leg in Germany.
But, having failed at the last-eight stage in the last three seasons, Pep Guardiola’s side will be well aware they still have work to do.
Dortmund will also leave Manchester with reason to feel aggrieved after having a Jude Bellingham goal controversially disallowed before half-time.
City, again starting without a recognised centre-forward, took time to impose themselves but they were ruthless in pouncing on a mistake to snatch the lead after 19 minutes.
Former Liverpool midfielder Emre Can mishit a pass straight to Riyad Mahrez and the Algerian quickly launched a counter-attack by releasing De Bruyne.
Foden then whipped in a low ball from the left and Mahrez’s cut-back from the byline was tapped in at close range by De Bruyne.
Despite going ahead, City did not look comfortable. Some sloppy play on the edge of their own box almost allowed in Reus but Ederson blocked.
City were given a penalty in strange circumstances on the half-hour after Rodri went down clutching his face following a challenge with Can. Yet it was not clear whether contact had been made and, after being asked to check the monitor by the VAR, referee Ovidiu Hategan eventually reversed his decision.
Further controversy involving the Romanian official soon followed as he bizarrely disallowed a Bellingham equaliser.
Bellingham had closed down Ederson as he attempted a clearance and ended up taking the ball and tapping home as the Brazilian missed his kick. Any contact was Ederson catching Bellingham in his failed attempt to clear but Hategan gave a foul against Dortmund.
“This Ref needs checking!” the watching Jadon Sancho tweeted.
Haaland finally got chance to show his pace early in the second half as he outsprinted Ruben Dias to get in on goal but Ederson was alert to the danger.
City picked up the pace and went close on the hour when De Bruyne found Foden in front of goal but goalkeeper Hitz blocked his first-time shot.
Hitz saved again from the same player soon after and De Bruyne shrugged off a challenge before firing narrowly wide.
City looked set to rue those misses as Dortmund claimed a well-worked equaliser six minutes from time.
Haaland was involved, cleverly flicking the ball into the path of Reus who broke into the area to clip over Ederson.
That sparked City into action again and they reclaimed the lead in the final minute as Foden turned in from close range.