Engelsmannen avgjorde höstens möte med dubbla mål och gjorde det igen när lagen möttes för sista gången för säsongen.
Innan dess hade Real Madrid kommit tillbaka från två underlägen.
Först genom Vinicius Junior på straff, och sedan genom Lucas Vazquez.
Däremellan hade Barcelona möjligtvis en boll i nät genom Lamine Yamal, men VAR-rummet kunde inte avgöra det och det dömdes bort.
Matchen var inne på stopptid när Bellingham fick bollen från höger och avslutade i nättaket i ett öppet mål och därmed säkrade segern för Real Madrid, som nu leder La Liga med hela elva poäng.
- Vi har gjort en väldigt bra ligasäsong. Nu ska avsluta på ett bra sätt, säger Lucas Vazquez, till Marca.
Segern avslutade en riktig drömvecka för Real Madrid - i onsdags slog man ut Manchester City i Champions League-kvartsfinalen.
- Vi kom tillbaka två gånger, och kramade ur den sista droppen energi. Det har varit en oförglömlig vecka, säger Carlo Ancelotti.
- Nu ligger vi bra till inför slutspurten. Vi kan åstådkomma något stort tillsammans.
Startelvorna:
Real Madrid: Lunin - Vazquez, Rüdiger, Tchouameni, Camavinga - Valverde, Kroos, Modric - Rodrygo, Bellingham, Vinicius Junior
Barcelona: Ter Stegen - Kounde, Araujo, Cubarsi, Cancelo - de Jong, Christensen, Gundogan - Yamal, Lewandowski, Raphinha