Real Madrid denied Spanish La Liga champions Barcelona victory in an ill-tempered Clasico which finished 2-2 at the Nou Camp after the home side had Sergi Roberto sent off at the end of the first half.
Luis Suarez volleyed unbeaten Barca into the lead on 10 minutes after a gut-busting run and cross from Sergi Roberto while Cristiano Ronaldo levelled for Champions League finalists Real five minutes later from close range.
However, the Portugal forward's ankle was trodden on by Gerard Pique in the process and he was substituted at halftime.
Coach Zinedine Zidane said the injury was "a small thing" and Ronaldo will be fit for the Champions League final.
Gareth Bale had risked getting sent off for raking his studs against Samuel Umtiti's leg but escaped without a booking on that occasion.
Sergi Roberto was sent off moments later for striking Marcelo after an off-the-ball tussle.
Lionel Messi scored a mesmerising, record-extending 26th Clasico goal to put 10-man Barca back in front after 52 minutes but Bale, who had contributed little, silenced the home fans with a thumping strike from the edge of the area in the 72nd.
Champions Barca have 87 points while Real are third with 72 from 35 games.
Atletico Madrid, who lost their unbeaten home record in a 2-0 defeat by 15th-placed Espanyol, are second on 75 but have played one game more.
"This was a Clasico with nothing at stake but we saw a great game," Zidane told reporters.
"We both went out to play well and win. We both played a great game and football is always the most important thing, not the controversy."
This was the first 'Clasico' in a decade which had no bearing on the title race but referee Alejando Hernandez Hernandez showed a total of eight yellow cards as well as the straight red.
Suarez appeared to have fouled Raphael Varane in the build-up to Messi's goal and the Uruguayan forward had a goal ruled out for offside three minutes later.
"Clasicos should be played like this, it was a beautiful game," Suarez told reporters.
"We wanted to win it, Sergi's sending off damaged us, especially against a team like Real Madrid."
Barca remain unbeaten in the league with three games to go.
Atletico suffered a hangover from reaching the Europa League final in midweek as they slumped to a surprise defeat at home to Espanyol, with Oscar Melendo and Leo Baptistao on target for the visitors.
"Playing as often as we do, we understand that a game like this can happen to us," Atleti coach Diego Simeone said.
"We have a small squad and we are playing a lot of games one after the other. We are getting weaker, a bit like my voice."
Relegated Las Palmas gave Getafe's slim European hopes a huge hit with a shock 3-0 win.
Deportivo La Coruna won the battle of the other relegated sides, overwhelming bottom side Malaga 3-0.