Barcelona recorded their 10th victory in a row by beating Villarreal in the Copa del Rey semi-final first leg.
The hosts dominated the first half but did not lead until the 41st minute when Luis Suarez set up Lionel Messi to sweep home from 16 yards out.
Manu Trigueros levelled soon after the break but Andres Iniesta restored Barca's lead.
Gerard Pique added a header but Neymar had a penalty saved that would have put Luis Enrique's side three goals clear.
The second leg is on Wednesday, 4 March, with Barcelona's city rivals Espanyol and Athletic Bilbao the other teams still in the competition.
Barcelona looked in crisis in early January when they were defeated by David Moyes's Real Sociedad. Several directors also quit the club, presidential elections were called and a transfer embargo was enforced.
There were also rumours of a row between Messi and boss Enrique. However, Barca have won every game since then.
Villarreal came into the game in good form too - their only defeat in the last 20 matches coming against Barca in the league earlier this month.
But Barca were dominant from the start with Suarez missing several half-chances before setting up Messi to score his 34th goal of the season.
Moments later, Messi played Suarez in but the Uruguayan dragged his shot wide.
Villarreal almost levelled with their first shot, in first-half injury time, as Luciano Vietto found the bottom left corner from Denis Cheryshev's cross but Marc-Andre Ter Stegen got down well to touch it around the post.
They equalised in the 48th minute when Ter Stegen let Trigueros's shot from outside the box through his hands.
But the scores were level for only seconds as Iniesta fired home from inside the box after an attempted pass to Suarez bounced back to the midfielder.
Pique put Barcelona in control when he headed home a corner from close range but Neymar squandered a chance when his spot-kick was saved by Sergio Asenjo.
- 1ter Stegen
- 22Alves da Silva
- 12RafinhaSubstituted forRakiticat 68'minutes
- 9SuárezBooked at 86mins
- 2Perez Martinez
- 5MusacchioBooked at 70mins
- 15RuizBooked at 70mins
- 18Costa Jordá
- 6J dos SantosSubstituted forRukavinaat 50'minutes
- 4PinaBooked at 66mins
- 21BrunoSubstituted forTrigueros Muñozat 33'minutes
- 17CheryshevSubstituted forGómez Bardonadoat 73'minutes
- 9G dos Santos
- 14Trigueros Muñoz
- 16Dorado Ramírez
- 19Gómez Bardonado
- 23Moreno Balagueró
- 25Sánchez Martínez
- Alejandro José Hernández Hernández
- Shots on Target