Lionel Messi struck twice as Barcelona overcame some nervy moments to comfortably beat relegation-threatened Tenerife at the Nou Camp to put the pressure back on fierce rivals Real Madrid as the Primera Division draws to an exciting conclusion.
Madrid travel to fourth-placed Mallorca tomorrow night in what looks like the hardest remaining fixture for Manuel Pellegrini's side.
And they will need to win it after Barca saw off Tenerife thanks to goals from Messi (2), Bojan Krkic and Pedro.
But it was harder than many had expected and Barca were forced to work for their win after the Canary Islanders had equalised Messi's opener through Roman Martinez.
Barca coach Pep Guardiola had expected a tough match, though, having said in the build-up that this game would be similar to the one Barca won here against bottom club Xerez.
That clash ended 3-1, and had it not been for Messi's injury-time strike, this one would have as well.
The Argentinian began up front alongside youngster Bojan and the much-criticised Zlatan Ibrahimovic.
And as has happened so often this season, the Catalans played their best football of the match when the Swede was no longer on the pitch.
Dani Alves, making his 100th appearance for Barcelona in only his second season at the club, tried to set up Messi after 13 minutes, but the Argentinian was unable to latch onto the Brazilian's pass.
However, the same combination saw Barca take the lead four minutes later, when Alves' first time cross was held up by Ibrahimovic and Messi beat Sergio Aragoneses with a sweet first-time finish.
Messi then drove wide with a powerful left-footed effort as the rain continued to pour down in Catalonia.
But Barca were not pouring forward with their usual gusto.
Aragoneses produced a neat save to deny Maxwell a second Barca goal after 35 minutes, but the Catalans were then surprisingly pegged back shortly afterwards.
A mix-up between Carles Puyol and Yaya Toure let in Daniel Kome, who quickly squared for Roman and the midfielder, on loan from Espanyol, fired under Victor Valdes to level the scores.
Bojan headed wide from a corner shortly before half-time, but Barca struggled to regain their rhythm after the break and they had to wait until 63 minutes had passed to retake the lead.
Alves was the creator again, this time setting up Bojan for a simple finish to restore calm at the Nou Camp.
Ibrahimovic then departed, replaced by Sergio Busquets, and Barca instantly looked more dangerous against a tiring Tenerife.
Pedro missed a one-on-one with Aragoneses, but made no mistake 10 minutes later, when he latched onto Messi's clever pass and fired past the Tenerife keeper, whose touch was not enough to keep out the winger's shot.
It would have been a special strike for Pedro, who was born in Tenerife.
Barca were comfortable now, and there was no way back for the visitors.
The fourth goal was harsh on the Canary Islanders, but delighted the home crowd as Messi controlled Alves' lovely pass from the flank and despatched a clinical finish past Aragoneses to score his 44th goal of the season.
That leaves the Argentinian just three adrift off Ronaldo as Barca's all-time top scorer in a season - the Brazilian scored 47 in 1996/97.
More importantly, the win leaves Barca provisionally four points ahead of Madrid.
Tenerife remain in the relegation zone with two games left and might have to win them both to secure survival.