Lionel Messi made one and scored two, including the winner two minutes from time, as the Catalans claimed a 5-4 aggregate win.
With the scores level at 2-2 from the first leg last week, the Argentinian set up Andres Iniesta for the opener only for Cristiano Ronaldo to equalise five minutes later.
Messi himself restored Barca's lead, but Karim Benzema brought the visitors level eight minutes from time as Madrid made their pressure pay.
Fabregas came on moments later for his first appearance for the club he left as a 16-year-old following his return from Arsenal.
The match looked headed for extra-time until Messi volleyed a late winner before Marcelo's sending off for a reckless scissor tackle on Fabregas sparked an injury-time brawl in which Mesut Ozil and David Villa, both of whom had already been substituted, were shown red cards, and Madrid boss Jose Mourinho appeared to tweak the ear of one of the Barcelona staff.
But if the game ended in ugly scenes, it started with one of beauty as Barcelona went ahead in the 15th minute with a goal of simplicity and brilliance.
Messi escaped his marked in midfielder for long enough to slide a perfectly-weighted through-ball into the path of Iniesta, who waited for goalkeeper Iker Casillas to go to ground and coolly dinked the ball over him.
Madrid levelled five minutes later when Ronaldo diverted Benzema's deflected low cross into the net, despite claims of offside.
Casillas then turned over Pedro's goalbound curler from the edge of the area before opposite number Victor Valdes kept out a fierce Ronaldo strike.
Messi had a sight of goal when he burst through the middle but, under pressure, his shot was weak and Casillas saved with his legs.
Madrid could not contain the Argentina forward, though, and on the stroke of half-time he seized on Gerard Pique's backheel and clipped a finish into the far corner.
The hosts continued to threaten after the break, Messi's chipped free-kick picking out Villa, but the Spain striker could not direct a difficult header on target.
Iniesta then laid the ball off to Messi, who burst into the area down the outside of the Madrid defence before his low shot was pushed away at the near post by Casillas.
Madrid were lucky to have 11 players still on the pitch with Pepe committing foul after foul, but Sergio Ramos should have brought them level only to send a free header wide.
Benzema levelled in the 82nd minute when Barcelona failed to clear a poor Kaka corner and the France striker scrambled the ball home.
Fabregas came on for Pedro moments later to make his debut following his long-awaited homecoming and was able to celebrate a Barcelona winner in the 88th minute.
Messi played a one-two with Adriano, playing the Brazilian in down the right and then stretching to volley his low cross inside the near post as he burst into the area.
The Argentinian was denied a hat-trick by the feet of Casillas before Marcelo was deservedly sent off for an unnecessary and dangerous tackle on Fabregas.
The incident provoked a heated confrontation between both sets of players and their benches, which saw Ozil and Villa, both taken off in the second half, also shown red cards.
Mourinho also got involved, appearing to tweak the ear of one of the Barcelona staff and smiling as he walked away, but it was Barcelona who had the last laugh.