Published: 2019-02-01 22:29:21 BdST
The draw means Spain's two biggest clubs will play each other three times in the space of four weeks, with Madrid hosting Barca in La Liga on Mar 2.
Thirty-times winners Barcelona, who have won the last four editions of the competition, will host Real in the first leg on Feb. 6, with the second leg coming on either Feb. 27 or Feb. 28 at the Santiago Bernabeu.
Betis will play at home to Valencia in the first leg on Feb. 7 and visit Mestalla in the second on either Feb 27 or Feb 28.
The final will be played at Betis' Benito Villamarin stadium in Seville on May 25.
Barca overcame a 2-0 deficit from their quarter-final first leg against Sevilla, thrashing the Andalusians 6-1 in the return leg to progress 6-3 on aggregate.
Real Madrid had a more comfortable path to the last four, beating Girona 4-2 at home and winning 3-1 away for a 7-3 aggregate win.
Betis meanwhile beat Espanyol 4-2 on aggregate, with Valencia overcoming Getafe 3-2 on aggregate by scoring twice in stoppage time in their 3-1 victory in the second leg at Mestalla.
Barcelona and Madrid have not met in the Copa del Rey since the 2014 final, which Madrid won 2-1. They last met in the semi-finals in the 2012/13 season, with Madrid winning 4-2 on aggregate.