Ronaldo was sent off for lashing out as Gareth Bale’s late penalty earned a ragged Real a 2-1 win at Cordoba that kept them on top of the Primera Division.
The European champions fell behind to a penalty scored by Nabil Ghilas in only the second minute of the game but Karim Benzema levelled later on in the first half.
Cordoba had a number of chances to retake the lead in the second half but wasted them all and Bale snatched the winner from 12 yards in the 88th minute after his free-kick was handled by Fede Cartabia, who was also sent off.
Lionel Messi and Neymar each scored braces as Barcelona hammered struggling Elche 6-0 to keep the pressure on leaders Real as they remain just one point back in the standings.
The Catalans needed 36 minutes to break the deadlock through Gerard Pique but dominated the second half, particularly after Elche midfielder Faycal Fajr was sent off in the 57th minute.
Neymar and Messi then set about ravaging their opponents, while Pedro scored the final goal of the game in stoppage-time.
Atletico Madrid kept pace with their rivals at the top as they brushed aside neighbours Rayo Vallecano 3-1.
Antoine Griezmann scored twice – and somehow missed out on a hat-trick despite a string of second-half chances – and, although Roberto Trashorras pulled one back before half-time, an own goal from Alberto Manucho put Atletico back in firm control early in the second half.
Atletico could not afford a slip against a Rayo side who arrived having won five of their 10 away games in the league this season, but the champions found their local rivals in generous form, with Rayo’s defence lending a helping hand all night.