Fernando Torres opened the scoring for the hosts in the first minute with a low strike that went in off the post from 20 yards out, but Barca were back on level terms within 10 minutes when Lionel Messi linked up with Luis Suarez to put Neymar through.
Raul Garcia edged Atletico back in front with a 30th-minute penalty before an own goal by Miranda and a second goal from Neymar gave Barca the lead.
Atletico midfielder Gabi was sent off in the 45th minute and just after the break, Arda Turan was booked after throwing his boot in the direction of an official after not winning a foul.
Mario Suarez got the second red six minutes from time with his second bookable offence, with Atletico unable to find a late equaliser on the night.
Barcelona will face the winners of the tie between Villarreal and Getafe in the semi-final, as they look to win their 27th Copa del Rey.