Lionel Messi scored twice as Barcelona came from behind to beat Espanyol, who finished the first leg of their Copa del Rey last-16 tie with nine men.
Felipe Caicedo put the visitors ahead after good play by Marco Asensio.
Messi equalised and then put Barca ahead with a fantastic 25-yard, off-the-bar free-kick, before setting up Gerard Pique to slide in a third.
Espanyol had Hernan Perez sent off for two bookings and Pape Diop for dissent before Neymar hit a brilliant volley.
The Brazilian's goal - which probably sealed the tie - came after a one-two with Messi, who played a first-time pass over the defence for Neymar to smash home.
It is the second of three Barcelona derbies in 11 days, with the teams meeting again in the second leg next Wednesday. They drew 0-0 in the league on Saturday.
Arda Turan and Aleix Vidal made their debuts six months after joining Barcelona after the club were finally allowed to register them following a transfer ban.
Espanyol lose their heads
Espanyol led for four minutes, but that was a distant memory when the final whistle went after a game which turned nasty at stages.
Goalkeeper Pau Lopez was lucky to escape a second yellow card when he appeared to stand on Messi's shin, leaving the Argentine furious.
Perez was then shown his second yellow card for an off-the-ball tackle on Jordi Alba. His first followed a nasty hack from behind on Neymar.
Three minutes later Diop was also dismissed. The midfielder, who had already been booked, was shown a straight red card for a comment that appeared to be aimed at Barca striker Luis Suarez, rather than the referee.
Messi on top form
Messi is overwhelming favourite to win the award for the world's best player at next Monday's Ballon d'Or ceremony.
And his performance in the Catalan derby showed just why he is considered the best.
He scored twice and assisted the other two goals. His first came when he latched on to an Andres Iniesta pass to fire home from near the penalty spot, and his magnificent second was his fourth free-kick goal of the season.
He gave Pique an easy chance to turn home Barca's third and then set up Neymar's final goal with an instinctive first-time aerial ball.
Barca's new boys
Turan and Vidal made their long-awaited debuts, having joined from Atletico Madrid and Sevilla respectively in the summer, and had solid games.
Turkey international Turan started in a midfield three. The £24m man forced a save from Lopez with an effort at the keeper's near post before being replaced midway through the second half by Ivan Rakitic.
Vidal came on at right-back for Dani Alves at the same time and joined Barca's attack on several occasions, having an effort blocked for a corner.
- 1ter Stegen
- 6Alves da SilvaSubstituted forVidal Parreuat 67'minutes
- 3PiquéBooked at 73mins
- 7TuranSubstituted forRakiticat 68'minutes
- 10MessiBooked at 78mins
- 9SuárezBooked at 45mins
- 11NeymarBooked at 34mins
- 17El Haddadi
- 22Vidal Parreu
- 13LópezBooked at 45mins
- 16López Rodríguez
- 24Raíllo Arenas
- 6RocoBooked at 78mins
- 5Álvarez Delgado
- 12DiopBooked at 75mins
- 10González CasanovaBooked at 11minsSubstituted forFranco Alvizat 60'minutesBooked at 74mins
- 17PérezBooked at 72mins
- 7Moreno BalagueróBooked at 20mins
- 25AsensioSubstituted forSevilla Lópezat 45'minutes
- 20CaicedoSubstituted forJordán Morenoat 41'minutes
- 8Sevilla López
- 9Franco Alviz
- 19Jordán Moreno
- 28Sylla Diallo
- Juan Martínez Munuera
- Shots on Target