Xavi saknade flera tunga pjäser till kvällens möte där Ousmane Dembélé, Pedri och Lewandowski missade matchen på grund av skada. I stället fick Ferran Torres chansen längst fram med Gavi och Raphinha vid sidan om. Totalt sett gjorde Xavi fem förändringar jämfört med förlusten mot Almeria senast.
Real Madrid var centimeter i från en drömstart hemma på Bernabeu. Vinicius Junior lyfte in bollen till Karim Benzema som tog emot på bröstet och avslutade rappt. Bollen i mål men fransmannen var offside och snuvades därmed på en drömöppning.
Efter 25 minuters spel tog Barcelona ledningen. Real Madrid slarvade i uppspelsfasen, något som Franck Kessié tog till vara på. Även om Courtois räddade ivorianens första läge så studsade bollen via Militao och in i eget mål med brassens ögon sett.
Camavinga fick kritik av The Athletic-reportern Mario Cortegana efter misstaget i uppspelet.
"I en match som denna får du inte göra det misstaget", skriver han på Twitter.
Självmålet blev också halvlekens enda mål och Barcelona kunde gå till halvtidsvila i ledning.
Under den andra halvleken dominerade Real Madrid bollinnehavet i jakten på en kvittering. Men de riktigt stora chanserna uteblev och hemmalaget för dagen fick inte iväg något skott på mål under hela matchen.
Barcelona vann med 1-0 och har nu kopplat ett grepp om finalplatsen i spanska cupen inför returen som spelas 5 april.
Startelvor:
Real Madrid: Courtois - Carvajal, Militao, Rudiger, Nacho - Kroos, Camavinga, Modric - Valverde, Benzema, Vinicius.
Barcelona: Ter Stegen - Araujo, Koundé, Alonso, Balde - Kessie, De Jong, Busquets - Raphinha, Ferran Torres, Gavi.