Real Madrid moved into the semifinals of the Champions League after its makeshift defence held on for a 0-0 second-leg draw with Liverpool at Anfield on Wednesday to complete a 3-1 aggregate win.

The Spanish side will face Chelsea in the last four as it searches for its fifth Champions League title in eight years.

Liverpool, the 2019 Champions League winner, created enough chances in the opening 45 minutes to have turned the tie around but it ran out of ideas in the second half.

Jurgen Klopp had hoped that a disappointing Premier League campaign could be compensated for with some end of season European excitement but his side still looks well short of the thrills it produced in the past two seasons.

MATCH BLOG | Champions League highlights: Real Madrid, Man City advance to semifinals

With no crowd at Anfield, this was never going to be a dramatic and emotional night like the memorable comeback victory over Barcelona two years ago but Klopp will surely feel that a chance of progress was missed against a weakened Real without skipper Sergio Ramos and his central defensive partner Raphael Varane.

Liverpool came out with intent and aggression and soon had Real on the back foot. Sadio Mane fed Mohamed Salah for an early chance but the Egyptian shot straight at Thibaut Courtois, who saved with his legs.

Klopp had clearly targeted Real's stand-in right-back Federico Valverde as a potential weak spot and the Uruguayan struggled to cope with Mane in the opening stages.

A flowing attacking move, reminiscent of Liverpool at its best, ended with a curling shot from James Milner which Courtois did well to tip wide.

But Liverpool had its own defensive vulnerabilities exposed in the 20th minute when Nathaniel Phillips was robbed by Karim Benzema and the Frenchman weaved his way into the box before his deflected shot struck the post.

RELATED | Man City reaches Champions League semis with 2-1 win at Dortmund

Salah then had another opening but scooped his shot, from a promising position, high and wide and then the best chance of the half fell to Georginio Wijnaldum -- after good work from Trent Alexender-Arnold, the Dutchman leaned back and put his shot well over the bar.

The home pressure continued after the break with Roberto Firmino testing Courtois at the near post with a fine shot on the turn.

Klopp threw on Diogo Jota and Thiago Alcantara on the hour in search of the breakthrough but it so nearly came at the other end -- Alisson Becker doing well to race off his line to foil Vinicius Junior and then smother Benzema's follow-up.

Real was in no mood to cave in and Liverpool didn't have the inspiration needed to open it up and while its display was creditable, it could not do enough to make up for its defensive errors in the first leg loss.

Neither of these sides were at their peak in these two-legs, both showing the effects of injuries and the tough schedule this season, but it is the 13-time European champion which deservedly progressed.