“I’m rather satisfied. Especially with the victory, but also with the game,” said Barcelona coach Xavi.
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.
“He’s a special player. His goalscoring sense is remarkable,” said Xavi of the 19-year-old.
“In training it’s raining goals. He needs to be in the box, that’s why I brought him in as a centre-forward, and also because he still lacks a bit of rhythm to play on the wing.
“But his return is great news for Barcelona.”
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.