The result lifted the defending champions two points clear of second-placed Valencia, who recorded a crushing 6-1 victory at Malaga on Saturday.
Deportivo Coruna remain a further four points back in third following a 1-0 win at home to Sevilla, striker Diego Tristan scoring the only goal in a tight contest from the penalty spot.
Barcelona bounced back from the disappointment of their midweek exit from the King's Cup and took the pressure off coach Frank Rijkaard by claiming their most convincing win of the season, beating Albacete 5-0 at home.
Midfielder Xavi put Barca ahead with a deflected shot on 16 minutes and the Catalans completed a resounding victory with four more goals in the second half, including a debut strike from Dutch midfielder Edgar Davids.
The win pushed Barcelona into fifth place in the standings, two points behind Atletico Madrid and nine adrift of Depor.
Valladolid, anxious to erase the memory of their humiliating 7-2 thrashing when they met Real at the Bernabeu earlier this season, started strongly at Zorrilla.
The home side poured through the gaps in the Real midfield pinning the visitors in their own area during the opening quarter and were rewarded with the lead in the 34th minute.
Forward Roberto Losada skipped past Santiago Solari on the right, cut a neat pass back into the area from the byline and Oscar was on hand to clip the ball past the outstretched Real keeper Iker
CAUGHT OUT
Real had barely recovered from the blow when Valladolid caught them out again on the break eight minutes later.
Former Real Madrid keeper Albano Bizzarri hoisted the ball upfield to Sales on the right, the midfielder swept a cross toward the area and Oscar got ahead of defender Michel Salgado to head past Casillas for his second goal.
Valladolid changed tactics after the break and sat back to defend their lead, thereby handing the initiative to Real.
The champions rose to the challenge and with Luis Figo at the helm put the home side under severe pressure, pulling a goal back four minutes into the second half when Ronaldo diverted a Zinedine Zidane shot into the net from close range.
Real drew level 13 minutes later when Figo scored from the penalty spot after defender Juan Manuel Pena was adjudged to have handled in the area.
The Bolivian was sent off for the offence but Real had little time to enjoy their numerical advantage as defender Santiago Solari followed him down the tunnel after picking up a second booking eight minutes later.
In a frantic finish both sides had a chance to snatch victory but it was Ronaldo who once again demonstrated his lethal finishing to earn his side the win.
Picking up the ball just inside the area after a slick interchange of passes between Guti and Zidane, the Brazilian turned sharply and cracked a low shot past Bizzarri to take his tally for the season to a league-leading 18.