Barcelona-laget, som låg under med 2-0 efter 14 minuter men ledde med 4-2 i halvtid, stärkte sin ledning i toppen av den spanska ligan efter den 35:e matchdagens derby och gick upp sju poäng till andraplacerade Real Madrid med bara nio matcher kvar att spela i de tre sista omgångarna.
En seger över den största rivalen hjälper Barcelona att övervinna semifinalavancemanget i Champions League mot Inter Milan i mitten av veckan, och titelkampen kan äga rum på torsdag på Espanyols stadion i den 36:e omgången.
Real Madrid såg ut att ta revansch för de tre nederlagen mot Barcelona den här säsongen och återuppta kampen om titeln med två mål av Mbappé, i den femte minuten på en straff som målvakten Szczesny tilldömde honom, och i den 14:e minuten efter en snabb rensning och en assist från brasilianaren Vinicius Júnior.
I den andra matchen som spelades samma dag tog Leganés lite fart i kampen för att hålla sig kvar genom att vinna med 3-2 på Espanyol och klättra upp till 16:e och näst sista plats, en poäng bakom Alavés, 15:e och det första laget ovanför den "röda zonen", som har spelat en match mindre.