Det var ett stekhett möte där oerhört mycket stod på spel. Barca ledde ligan en poäng före Real innan matchen och utökade nu ledningen till fyra poäng - laget tog därmed ett jättekliv mot ligatiteln.
Luis Suarez blev stor matchvinnare med sitt 2-1-mål i den 56:e minuten.
Så var matchen:
Real Madrid skapade matchens första riktigt heta målchans när Benzema frispelade Ronaldo, men portugisen prickade ribban i den tolfte minuten.
I den 19:e minuten exploderade Camp Nou när mittbacken Mathieu nickade in 1-0 till Barcelona på Messis precisa frispark.
I den 31:a minuten slog Real Madrid tillbaka - efter ett riktigt mönsteranfall. Benzema frispelade Ronaldo läckert med en klack och portugisen var säker i friläget mot Bravo.
Det var en riktigt intensiv och bra matchinledning på detta El Clasico.
I den 40:e minuten styrde Bale in 2-1 till Real Madrid - ett mål som tveksamt dömdes bort för offside. Ny chans för Real Madrid när Ronaldo skar in i planen och avlossade ett hårt avslut - men Bravo tippade över till hörna. På den efterföljande hörnan fick Bale ett jätteläge, men hans avslut gick tätt utanför.
Den första halvleken slutade 1-1 efter mål av Mathieu och Ronaldo. En halvlek där Real tog över mer och mer ju längre halvleken led.
I den 56:e minuten spelade Dani Alves fram till Suarez som tog emot bollen snyggt och placerade in bollen i nät till höger om Iker Casillas. 2-1 till Barcelona.
Med kvarten kvar hade både Messi och Neymar varsitt jätteläge att i princip avgöra matchen - men ingen hittade rätt. Minuten senare fick Benzema ett bra läge utanför straffområdet, men Bravo sträckte ut och räddade snyggt ut till hörna.
I 86:e minuten skulle bara Jordi Alba avgöra matchen fri med Casillas, men avslutet gick rakt på Real-målvakten. Hemmalagets tryck fortsatte och Messi testade Casillas från nära håll, men återigen en bra räddning av Real-keepern.
Slut: Barcelona vinner med 2-1 efter mål av Mathieu och Suarez. Ronaldo gjorde bortalagets mål.
Barcelona: Bravo; Alves, Pique, Mathieu, Alba; Rakitic, Mascherano, Iniesta; Messi, Suarez, Neymar.
Real Madrid: Casillas; Carvajal, Pepe, Ramos, Marcelo; Kroos, Modrić, Isco; Bale, Ronaldo, Benzema.