Fede Valverde and Marco Asensio scored as Real Madrid struggled to beat Osasuna 2-0 in La Liga on Saturday, just three days before they head to Liverpool in the Champions League.

Uruguay midfielder Valverde and Spain winger Asensio netted in the final quarter of an hour in Pamplona to cut Barcelona’s advantage to five points at the top of the table before the Catalans host lowly Cadiz on Sunday.

Ballon d’Or winner Karim Benzema was missing from Real’s matchday squad as coach Carlo Ancelotti rested the France attacker ahead of Tuesday’s Champions League last-16 first leg at Anfield.

Real Madrid's Uruguayan midfielder Federico Valverde celebrates after scoring his team's first goal
AFP

“It was a hard-fought, close match, well played by both teams, and we are all the more satisfied to have won,” said Ancelotti.

“The boys suffered when they had to and knew how to wait for the moment to score.”

On Saturday, Real dominated the early proceedings with centre-back Eder Militao going close with a rushed volley from a free kick on six minutes after midfielder Eduardo Camavinga was fouled.

Real Madrid's Spanish midfielder Marco Asensio celebrates with teammates after scoring his team's second goal
AFP

Less than five minutes later Brazil attacker Vinicius Junior saw his effort dribble past the post despite nutmegging Osasuna goalkeeper Sergio Herrera.

Los Blancos were unable to break the deadlock before the interval as the Basque hosts stepped up their aggression in defence and were shown three yellow cards in 45 minutes.

The home side’s physicality caused Ancelotti to confront the officials as they left the field at the interval as the Italian was unhappy with Osasuna’s special attention to Vinicius as whistles circled around El Sadar.

Real Madrid's Italian coach Carlo Ancelotti argues with Spanish referee Jose Luis Munuera Montero
AFP

Less than 70 seconds after the interval, Real came within inches of opening the scoring as Vinicius’ compatriot Rodrygo skimmed the post with a curling effort.

Five minutes later Vinicius thought he had claimed the first goal of the game but the forward was adjudged to be offside.

Osasuna kept a foothold in the match and hit the woodwork just after the hour mark with a low-driven effort from Moi Gomez.

With 12 minutes to play Vinicius was the provider as his low cut-back cross set-up Valverde to half-volley home to open the scoring.

Asensio made sure of the three points in injury time with an assist from teenager Alvaro Rodriguez on his Real debut.

Third-placed Real Sociedad were held 1-1 by 10-man Celta Vigo due to Robin Le Normand’s 93rd minute own goal.

On Sunday, Atletico Madrid in fourth can close the gap on Sociedad to two points with a win against Athletic Bilbao in the Spanish capital.

On Monday, former midfielder Ruben Baraja takes charge of Valencia for the first time as they head to fellow strugglers Getafe.

Los Che have not won a league game since early November, with six defeats in their past seven matches – just one point gained from a possible 21.