An own goal from Nacho proved to be the difference between the two sides, with Marco Asensio missing a second-half penalty for Carlo Ancelotti's team during a frustrating match for the visitors.
Los Blancos remain on 45 points, five points behind leaders Barcelona, who will have the chance to move eight clear on the same number of games (20) when they face Sevilla on Sunday night.
Thibaut Courtois was injured in the warm-up for Real Madrid, while Eder Militao, Karim Benzema, Eden Hazard, Lucas Vazquez and Ferland Mendy were also missing due to fitness issues.
Mallorca took the lead in the 11th minute of the contest, with Vedat Muriqi's header hitting Nacho before dropping over Andriy Lunin in the Real Madrid goal.
The visitors did not have a single shot on target in the opening 45 minutes of action, with the Spanish and European champions entering the half-time interval one goal behind.
Ancelotti's side were awarded a penalty in the 57th minute when Vinicius Junior was brought to the ground by Predrag Rajkovic, but the Mallorca goalkeeper redeemed himself by keeping out Asensio's effort.
Asensio, who was forced to wait for over a minute due to some time-wasting tactics, looked to pick out the bottom right, but Rajkovic was across to make a smart save.
The Real Madrid attacker almost made up for his miss in the 66th minute when he worked his way to the edge of the Mallorca box before looking to pick out the bottom corner, but his effort was just wide.
Rajkovic then denied Vinicius in the 68th minute, before Mariano Diaz, David Alaba and Toni Kroos were all introduced with 20 minutes left, with Ancelotti looking for a route back into the match.
The away side's best chance of a leveller came to Mariano late on, but the striker headed a Luka Modric cross wide of the target, as Mallorca held on to secure an impressive three points in front of their own supporters.
Real Madrid will now head to Morocco to compete in the Club World Cup, with their semi-final set for Wednesday against Al Ahly, while Mallorca will resume their La Liga campaign against Sevilla next weekend.