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.

Raphinha, Fermin score as Barcelona beat Athletic in home opener
Chelsea and Fulham reach League Cup third round as Welbeck scores on debut
PSG to meet Barca, Man City as Champions League draw throws up marquee ties
Abbas gives Pakistan slight edge as England battle back at Lord's
UEFA suspends FIFA boycott threat but steps up pressure on world body