Luis Suarez volleyed unbeaten Barca into the lead after ten minutes following a gut-busting run and cross from 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.
Bale had risked getting sent off for raking his studs against Samuel Umtiti’s leg but escaped without a booking on that occasion and Roberto was sent off moments later for hitting Marcelo following an off-the-ball tussle.
Lionel Messi scored a mesmerising, record-extending 26th Clasico goal to put ten-man Barca back in front after 52 minutes but Bale, who had contributed little, silenced the Nou Camp with a thumping strike from the edge of the area in the 72nd.
Champions Barca have 87 points while Real are third in the Liga standings with 72 after 35 games. Atletico Madrid, who lost their unbeaten home record in a 2-0 defeat by Espanyol earlier on Sunday, are second on 75 but have played one game more.