El joven brasileño Vinicius abrió el marcador casi sin ángulo (19), y Sergio Ramos puso el 2-0 de falta (56) para devolver a los blancos a lo alto de la clasificación.
Los merengues están empatados a 68 puntos con el Barça, pero figuran en la primera posición por su ventaja en los duelos particulares.
VEA: La Premier League crea sistema de alerta para insultos en redes sociales
El Real Madrid acabó imponiendo su talento ante un correoso Mallorca, que le dificultó mucho la salida del balón.
El equipo balear se queda antepenúltimo marcando los puestos de descenso a segunda división.
Antes, el Celta (16º) ganó 1-0 en el campo de la Real Sociedad (7º), alejándose un poco más del descenso, mientras el equipo vasco ve alejarse la Champions.
Un gol de penal de Iago Aspas (45) situó a las gallegos, que acumulan dos victorias consecutivas, siete puntos sobre los puestos de descenso.
LEA: Sergio Agüero irá a España para examinarse rodilla izquierda
Empezó la Real Sociedad empujando y manejando el balón frente a un Celta, que poco a poco se fue sacudiendo la presión local.
El equipo gallego se adueñó del balón y cuando parecía que la primera parte acabaría con empate, Diego Llorente derribó en el área a Iago Aspas, quien se encargó de transformar él mismo el penal (45).
Tras el descanso, la Real se lanzó a por el empate ante un Celta, que cerró filas, y pese a dominar, no pudo encontrar el gol.
La Real, que volvió del parón por el coronavirus en la cuarta posición liguera, acumula ya tres derrotas y un empate que le han hecho caer en la clasificación y ve cada vez más lejos la posibilidad de acceder a la Champions.
ENTÉRESE: El VAR y el Real Madrid en el centro de la tormenta en LaLiga
En otro partido del día, el Osasuna (11º) ganó 1-0 en el campo del Alavés (13º), en un pulso igualado, en el que los navarros impusieron su eficacia con un tanto de Antonio Latorre 'Lato' (64).
-- Programa y resultados de la 31ª jornada de LaLiga (horas GMT) :
- Lunes:
Villarreal - Sevilla 2 - 2
Leganés - Granada 0 - 0
- Martes:
Levante - Atlético de Madrid 0 - 1
Valladolid - Getafe 1 - 1
Barcelona - Athletic 1 - 0
VEA: Las impactantes imágenes de la lesión de Bernd Leno, portero del Arsenal
- Miércoles:
Real Sociedad - Celta 0 - 1
Alavés - Osasuna 0 - 1
Real Madrid - Mallorca 2 - 0
- Jueves:
(17h30 GMT) Eibar - Valencia
(20h00 GMT) Betis - Espanyol
Clasificación: Pts J G E P GF GC Dif
1. Real Madrid 68 31 20 8 3 59 21 38
2. Barcelona 68 31 21 5 5 70 31 39
3. Atlético de Madrid 55 31 14 13 4 39 22 17
4. Sevilla 53 31 14 11 6 44 32 12
5. Getafe 49 31 13 10 8 40 29 11
6. Villarreal 48 31 14 6 11 49 40 9
7. Real Sociedad 47 31 14 5 12 47 39 8
8. Valencia 46 30 12 10 8 41 43 -2
9. Granada 43 31 12 7 12 37 36 1
10. Athletic 42 31 10 12 9 33 27 6
11. Osasuna 38 31 9 11 11 36 46 -10
12. Levante 38 31 11 5 15 37 44 -7
13. Alavés 35 31 9 8 14 31 46 -15
14. Betis 34 30 8 10 12 40 48 -8
15. Valladolid 34 31 7 13 11 26 36 -10
16. Celta 33 31 7 12 12 29 35 -6
17. Eibar 29 30 7 8 15 31 47 -16
18. Mallorca 26 31 7 5 19 29 52 -23
19. Leganés 25 31 5 10 16 23 44 -21
20. Espanyol 24 30 5 9 16 26 49 -23