Mallorca dealt a major blow to Real Madrid's title aspirations as Vedat Muriqi struck an added-time winner to secure a 2-1 win for the hosts, leaving Real four points behind LaLiga leaders Barcelona who play Atletico Madrid later on Saturday.
The hosts withstood Real's pressure early in the game, keeper Leo Roman denying Kylian Mbappe with two diving saves, before Mallorca took the lead from their first shot on target in the 42nd minute as Manu Morlanes converted Pablo Maffeo's cross.
Eder Militao, playing for the first time since his hamstring injury in December, equalised for Real in the 88th minute but Muriqi, the second-highest scorer in LaLiga this season after Mbappe, sealed Mallorca's win with a strike three minutes later.
Mallorca's first win over Real in three years moved them two points above the bottom three.

Netflix secures exclusive 2030 World Cup broadcast rights in Spain
Hazlewood takes six wickets as Australia win first Test
Bethell returns as England name squads for Australia white-ball tour
Rwanda to bring F1 back to Africa for first time since 1993
Ronaldo on target as Al-Nassr win after security delay