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.

Sabalenka sees off Kasatkina to reach French Open fourth round
Parry stuns Anisimova to reach first Grand Slam fourth round at French Open
Osaka survives three-set scare against teenager Jovic
Cobolli cruises past Tien in straight sets to snap American's winning run
Liverpool sack Slot after underwhelming season