Barcelona secured a place in the final of the Copa del Rey after a 1-1 draw against Atletico Madrid at the Nou Camp, but will have to do without Luis Suarez who was one of three players sent off in a fiery clash.
Trailing 2-1 from the first leg in Madrid, Atletico knew they needed to score at least twice to progress.
The visitors made a positive opening with Fernando Torres and Antoine Griezmann leading the frontline, but failed to make the most of their chances before Suarez put Barcelona in front at the end of the first half.
Barcelona defender Sergi Roberto was sent off for a second yellow card just before the hour and Antoine Griezmann had an equaliser incorrectly ruled out for offside.
Yannick Carrasco was then sent off, Kevin Gameiro missed a penalty only to eventually draw Atletico level, before Suarez also received a red card in the closing stages of a heated contest.
Atletico had a great chance to take the lead in the sixth minute following a swift counter as Belgian midfielder Carrasco found space in the Barcelona penalty area, but could only shoot straight at Jasper Cillessen.
The Dutch goalkeeper was called into action again to parry a header from Stefan Savic and then save from Koke.
All of the visitors' pressure, however, counted for nothing as Barcelona swept into the lead two minutes before half-time.
Lionel Messi suddenly burst into action as he charged forwards to the edge of the Atletico penalty area, fending off the challenge of four red shirts before drilling a low shot towards the bottom corner which Miguel Moya palmed out straight to the on-rushing Suarez to tap into the empty net.
Atletico were forced into a substitution early in the second half after defender Diego Godin hobbled off, with Lucas Hernandez coming on.
Barcelona were reduced to 10 men in the 58th minute when right-back Roberto collected a second caution for a studs-up foul on Filipe Luis.
Atletico were denied what looked a perfectly good goal on the hour as Griezmann was played into the left side of the penalty area and drilled a low shot into the bottom corner, but the flag went up for offside. Replays showed it was the wrong call.
With 20 minutes left, the visitors also had a man sent off when Carrasco upended Arda Turan and was shown a second yellow card.
Messi was inches away from settling matters when his 25-yard free kick was drilled against the underside of the crossbar.
Atletico were handed a lifeline with 11 minutes left when Gerard Pique was ruled to have tripped Gameiro as the striker got ahead of him into the left of the penalty area.
However, Gameiro crashed the resulting spot kick off the top of the crossbar and high into the stands.
The France forward did set up a grandstand finale when he tapped in Griezmann's cut-back on 83 minutes.
Suarez had the ball in the Atletico net after being played in by Messi but was correctly ruled offside.
The visitors continued to press forward and Koke swung the ball across the six-yard box from the right, but there was no-one in a red shirt to put it in the net.
In the final minute, Suarez led with his elbow into the face of Koke as they challenged for a ball on the half-way line, and the referee took out a yellow card which was swiftly followed by a red, meaning the Uruguay forward will be suspended for the final.
In stoppage-time, Messi went down under a sliding challenge from Filipe Luis and looked to have turned his ankle, which left the Barcelona bench incensed, but the captain was able to finish the match.