Barcelona set up a Copa del Rey semi-final with Real Madrid after defeating Malaga 4-2 in the second leg of their last-eight clash to progress 6-4 on aggregate.
Having conceded two away goals in the previous leg, the visitors went into the match all guns blazing and took the lead on the night with just eight minutes on the clock.
Daniel Alves linked up with Xavi before playing in a measured cross for Spanish international Pedro to head into an empty net and make it 3-2 on aggregate.
End-to-end action ensued and the hosts found themselves level just four minutes later when Ignacio Camacho picked out Joaquin Sanchez in the box, and the winger found the bottom corner.
Barcelona had a glorious chance to restore their aggregate lead in the 27th minute. Lionel Messi picked up a loose pass in the area but the world player of the year was denied by Malaga goalkeeper Carlos Kameni.
Both sides could have gone ahead before half-time, with Roque Santa Cruz and Camacho blowing chances for the hosts and Andres Iniesta striking the crossbar at the other end.
Tito Vilanova's side dominated play after the break and went ahead for the second time on the night in the 49th minute through Gerard Pique, who capitalised on some sloppy Malaga defending and fired into the bottom corner.
Malaga drew level against the run of play on 68 minutes through former Blackburn Rovers man Santa Cruz, who beat the offside trap and struck a low effort beyond visiting keeper Jose Manuel Pinto to make it 3-3 on aggregate.
The hosts put in a spirited performance, but Barcelona were the better side and they got their just desserts in the 76th minute when Iniesta exchanged passes with Cesc Fabregas before rifling home that killer blow.
With Malaga still reeling from Iniesta's strike, Barcelona put the result beyond doubt with 10 minutes left to play. Messi headed home an Alves cross to claim his team's 100th goal of the season and make it 6-4 on aggregate.
Barcelona will face their great rivals Real Madrid in the last four, with Sevilla and Atletico Madrid battling it out in the other semi-final.