Antonio Rudiger scored a late header as Real Madrid fought hard to stay at the top of the La Liga table along with Girona who best Atletico Madrid at home.
Mallorca also hit the woodwork twice as Antonio Sanchez’s header bounced off the underside of the crossbar on to the goalline.
Real are now unbeaten in 18 games in all competitions.
Both Real and Girona have 48 points from 19 matches at the halfway point in the Spanish league season, but Madrid sits at the top on goal difference.
Vinicius who had just returned from injury had two efforts saved by Predrag Rajkovic – one attempt from a tight angle and another strike from outside the penalty area.
England’s Jude Bellingham who is the top scorer in La Liga this season with 13 goals had a diving header from Modric’s cross but Mallorca’s keeper saved it.
Girona on the other hand are level on points with Real and 10 points ahead of both Atletico Madrid and Barcelona, although Barca have a game in hand.