Cristiano Ronald headed his 300th goal for Real Madrid in a laboured 2-0 La Liga victory at neighbours Rayo Vallecano that kept the gap on leaders Barcelona down to four points.

La Liga top-scorers
37 Cristiano Ronaldo (Real Madrid)     
33 Lionel Messi (Barcelona)            
17 Neymar (Barcelona)                  
     Carlos Bacca (Sevilla)              
16 Antoine Griezmann (Atl Madrid) 
     Alberto Bueno (Rayo Vallecano) 

Fresh from thrashing Granada 9-1, when Ronaldo hit five, the European champions needed a win at Rayo's Vallecas stadium after Barca strolled to a 4-0 home victory over Almeria to open a seven-point advantage over their arch-rivals.

In-form Luis Suarez scored twice and Lionel Messi ended a three-game goal drought, with Marc Bartra also getting on the scoresheet at the Nou Camp.

Real struggled to exert any control over lowly Rayo and missed a host of chances before Ronaldo netted his 37th La Liga goal of the campaign with a header from Dani Carvajal's cross.

The prolific Portugal forward, five clear of Messi at the top of the scoring chart, is the third player after Raul (323) and Alfredo Di Stefano (307) to reach 300 goals for Real, but has needed only 288 matches, compared with Raul's 741 and Di Stefano's 396.

Ronaldo had earlier been booked for a dive in the penalty area and will be suspended for the La Liga game at home to Eibar on Saturday.

With eight league games left, Barca have a chance of repeating 2009's historic treble under Pep Guardiola, the only time a Spanish side has won the domestic league and Cup and Champions League in the same season.

Source: Reuters