Sami Khedira opened with Madrid’s league-record 108th goal of the season and Ronaldo sealed the victory with his own league-record 42nd goal moments after Alexis Sanchez leveled for Barcelona.
Madrid’s 19th league game without a loss lifted it seven points clear of Barcelona at the top of the standings with just four rounds to go.
“This was a crucial step forward, now we have to finish it off,” Madrid midfielder Xabi Alonso said.
“We barely suffered. We controlled the game to perfection.”
After managing only a single win in nine previous games against Barcelona since joining Madrid, coach Jose Mourinho finally guided his team to a long-coveted victory over its fierce rivals on their ground.
It was Madrid’s first victory at Camp Nou since 2007 and Mourinho’s first ever career win here in 10 visits with three different teams.
The game had been hyped as a duel between Barcelona’s Lionel Messi and Madrid’s Ronaldo, but this time the Portugal forward came out on top and moved one goal ahead of his Argentine rival in their own personal scoring duel to see who is the top all-time scorer in a single Spanish league season.
Ronaldo showed once again that Madrid is one of the best counterattacking sides in Europe when he used his pace to race free and his aim to beat goalkeeper Victor Valdes with little angle from the right flank to seal the win that practically wraps up the title race.