Vinicius Junior scored an hour before Real’s first attempt on goal and goalkeeper Thibaut Courtois saved several impressive saves to deny Liverpool, who finished the season with two domestic cups after also failing to win the Premier League.
In a battle of European heavyweights, Jurgen Klopp’s side had more chances but lacked sharpness when it mattered as Carlo Ancelotti became the first coach to achieve double success in the Champions League after winning two teams with Milan.
It was Real’s fourth title in seven years as he improved on his impressive record in the competition with his eighth victory in the same number of finals.
The final was scheduled to be played in St Petersburg but the European Football Association (UEFA) moved it to Paris after the Russian invasion of Ukraine, which Moscow described as a “special operation”.
The match started after a 36-minute delay following incidents outside the stadium when fans were tear gassed by riot police as people without tickets attempted to force entry.
Liverpool had won the previous European Cup final played by the two teams in Paris, winning 1-0 at Parc des Princes in 1981, Real Madrid’s last defeat in the final.
It was supposed to be a different result this time with Liverpool a bit favourites but they beat Merseyside FC for the second time in Paris after winning 3-1 in 2018.
Liverpool pushed high to feed their backs quickly and the pressure became enormous in the Real Madrid game.
Mohamed Salah was picked up by Trent Alexander-Arnold in the penalty area but Courtois extended to deny the Egyptian.
After another attempt by Liverpool’s Thiago Alcantara, Sadio Mane got very close when he passed Eder Militao and Casemiro in the penalty area before the excellent Courtois directed his fierce attempt to the post in the 21st minute.
Real Madrid were still waiting for their first shot after half an hour as Virgil van Dijk mustered the Reds’ defence.
But Liverpool were not decisive enough in attack and Salah tried again with a header but it passed straight at Courtois 10 minutes before the end of the first half.
Real Madrid’s only chance in the first half gave Liverpool a huge consternation, but Karim Benzema’s effort was called off after the VAR ruled he was offside, as Federico Valverde played him despite Fabinho’s aberration.
Liverpool returned to the match early in the second half, but Real absorbed the pressure until scoring the goal in the 59th minute.
It all started when Luka Modric pulled away from Andrew Robertson to create space and ended with Valverde’s accurate pass to the far post that was handed over by Vinicius.
Courtois then jumped in to sabotage Salah’s superb attempt to keep Real ahead.
The Belgium goalkeeper was flawless once again to deny Salah 10 minutes from the end of time before his jubilant teammates jumped into his arms to show their gratitude at the final whistle.