(CNN) -- Zlatan Ibrahimovic scored his third goal in as many games to continue his return to form and lift Barcelona to the top of Spain's La Liga on Saturday night.
The Sweden striker, who was criticized after his scoring streak dried up in the first two months of this year, netted the only goal against fourth-placed Mallorca to put the defending champions three points clear of Real Madrid.
Real can return to the summit on goal difference with victory in Sunday's Madrid derby against Atletico.
Mallorca had won 12 of 13 matches at home this season, and should have taken the lead in the second minute when Aritz Aduriz smashed a shot against the post.
Barcelona started with top scorer Lionel Messi and playmaker Xavi on the bench, while ahead of Wednesday's Champions League quarterfinal at English club Arsenal, while Thierry Henry and Gerard Pique were also rested.
The European champions had a goal disallowed in the 12th minute when young winger Pedro Rodriguez was ruled to be offside.
Mallorca keeper Dudu Aouate then denied Gabriel Milito and Ibrahimovic, and the islanders hit the post again just before halftime from Borja Valero's free-kick.
Barcelona coach Pep Guardiola brought on Messi for Andres Iniesta seven minutes after the break, and Xavi replaced Yaya Toure around the hour mark.
The move worked as Ibrahimovic pounced to score his 15th goal this season from close range in the 63rd minute after Pepe Luis Marti deflected Xavi's corner at his own goalkeeper, and Aouate could only manage a reflex block.
Aouate did well to tip over a fierce Messi drive, and the in-form Argentina forward -- named the world's highest-earning player during the week -- should have doubled Barcelona's lead but surprisingly fired well over the bar.
The Catalans then played out for time to clinch a 26th clean sheet this season for goalkeeper Victor Valdes.
Mallorca can lose fourth place if Sevilla win at Villarreal on Sunday.
Third-placed Valencia remained six points ahead of Mallorca after losing 3-0 to struggling Real Zaragoza in Saturday's late match.
Valencia went behind four minutes before halftime to a thunderous left-foot shot from Uruguayan defender Diogo, and were reduced to 10 men just before the break when Nikola Zigic received a second yellow card.
The giant Serbian was given a rare start in place of star striker David Villa, but was given an early bath after making an awkward lunge at a defender.
Angel Javier Arizmendi doubled the lead with a goal against his former club in the 63rd minute after Edmilson's fine long pass helped him beat the offside trap, and Jiri Jarosik made it 3-0 eight minutes later as he stuck out a leg to divert a corner into the net.
The win lifted Zaragoza four points clear of the relegation zone, with third-bottom Tenerife coming from behind to draw 1-1 at Malaga in the early match.