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.
Relive Barcelona's Catalan derby victory
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 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 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.
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.