Despite being without starting center-back pairing Sergio Ramos and Raphael Varane, Real Madrid looked a class above the reigning Premier League champion and took the lead through first-half goals from Vinicius Junior and Marco Asensio.
Mohamed Salah pulled one back for Liverpool, but with 25 minutes remaining, Real extended its lead with Vinicius grabbing his second of the night.
It was the same scoreline as when the two sides met in the Champions League final in 2018, and this time Liverpool faces a tough challenge to overturn the two-goal deficit in the second leg at Anfield on April 14.
“If you want to go to the semifinals of the Champions League, you have to earn the right to do so,” Liverpool manager Jurgen Klopp told BT Sport.
“We didn’t do that tonight, especially in the first half … we just didn’t play good enough football tonight.”
Despite coming into the game off the back of an impressive win over Arsenal in the Premier League at the weekend, Liverpool was second best from the outset.
The experienced midfield of Toni Kroos, Luka Modric and Casemiro took control of the flow of the game, and it was an excellent through-ball from Kroos that enabled Real Madrid to open the scoring.
Vinicius controlled the ball masterfully on his chest before firing past Alisson in the Liverpool goal.
Liverpool’s evening went from bad to worse moments later as Trent Alexander-Arnold’s misplaced header from another Kroos pass was pounced on by Asensio, who lifted the ball over Alisson before tapping home.
The Reds looked better after the break and reduced the deficit six minutes into the second half as Salah profited from neat work by Georginio Wijnaldum and Diego Jota to finish past Thibaut Courtois.
However, as Liverpool attempted to restore parity, sloppy passes and errant shots disrupted its flow and Real Madrid was able to extend its lead as Vinicius squeezed a first-time shot past Alisson following slick buildup play by Karim Benzema and Modric.
‘Won the ball fairly’
In Tuesday’s other tie, a late goal from Phil Foden helped Manchester City to a 2-1 victory over Borussia Dortmund.
Kevin De Bruyne opened the scoring as he drove the ball deep into the Dortmund half before Foden and Riyad Mahrez combined to tee up De Bruyne for the finish.
In an eventful first half, City had a penalty decision overturned after consultation with the video assistant referee while Dortmund had Jude Bellingham’s goal ruled out as he took the ball from Ederson.
Marco Reus leveled the game late on from a well-worked move that handed Dortmund a valuable away goal, only for City to restore its lead when De Bruyne’s ball into the box allowed Ilkay Gundogan to set up Foden for the winner.
However, Dortmund will feel that it deserved a better result after Bellingham’s disallowed effort.
“I definitely think I won the ball fairly,” the 17-year-old told BT Sport of the first-half incident.
“It’s a bit frustrating in the time that they’ve got so many cameras and so many TVs watching the game that they don’t wait for me to put it in the net and then check it.
“It’s football, it’s life and I’ve kind of got to get on with it really.”
The second leg of the tie will take place in Dortmund next week as City bids to reach its first Champions League semifinal since 2016 and Dortmund its first since 2013.