Goals in either half from Memphis Depay and Sergio Busquets put Xavi Hernandez’s men in control and they took the three points despite Antonio Raillo’s effort for their relegation-threatened opponents at the Camp Nou.
The Catalan giants move two points ahead of Sevilla and nine clear of fifth-placed Real Betis, who have a game in hand, with four matches to play this season.
Barca took the lead in the 25th minute as Memphis Depay made a clever run to collect Jordi Alba’s pass before thumping a fine half-volley into the bottom corner.
The Dutchman has scored 11 league goals since joining Barcelona from Lyon last summer, despite having struggled for a regular starting spot since the arrival of Pierre-Emerick Aubameyang from Arsenal in January.
The hosts doubled their advantage nine minutes after the break as Sergio Busquets drove a low shot from the edge of the box into the net to score for the third time this season in all competitions, equalling his previous best goalscoring campaign.
Barca thought they had added a third in the 73rd minute, but Ferran Torres’ effort after a desperate goalmouth scramble was ruled out for an offside earlier in the move.
There was more to cheer for the home fans shortly afterwards as Ansu Fati came off the bench to make his first appearance since suffering a hamstring injury in January.
Mallorca ensured that their opponents would at least endure a nervy finale to the match, as Antonio Raillo pulled one back with 11 minutes remaining.
But Barcelona held on, leaving Mallorca only one point ahead of 18th-placed Granada, who drew 1-1 with Celta Vigo, in the fight to beat the drop.
Earlier, Real Sociedad suffered a blow in their bid to qualify for next season’s Champions League, as Radamel Falcao grabbed Rayo Vallecano a 1-1 draw.
La Real looked set to move within three points of fourth-placed Atletico Madrid with four matches remaining when Alexander Sorloth gave them a first-half lead.
But Colombian veteran Falcao came off the bench in the 77th minute and scored less than a minute later to leave Sociedad five points off the top-four pace.
It was Falcao’s sixth league goal of an injury-hit season as the 36-year-old made his first appearance for Rayo since February.
Visitors Sociedad remain in sixth place after a third straight game without a win.
Real Betis can cut the gap to Atletico down to a single point on Monday when they travel to Getafe.
Real Madrid wrapped up the title on Saturday, ahead of their Champions League semi-final second leg against Manchester City in midweek.