Osasuna will clash with Athletic Bilbao in the other semi-final fixture.
The matches take place on four different dates in February, March and April with the Spanish FA having a scheduling headache.
Real Madrid are playing in the FIFA Club World Cup which begins on Wednesday and ends on February 11, and then two legs of the Champions League last 16.
Real Madrid and Barca meet in the first leg at Camp Nou on March 1 and will play the second leg at Santiago Bernabeu on April 4 or April 5.
Osasuna will play Athletic Bilbao on Feb. 8 and March 1.
The semi-final represents a chance for La Liga and European champions Real Madrid to get revenge for their 3-1 loss two weeks ago in the Spanish Super Cup against FC Barcelona.
Barca are currently the league leaders after they moved on to 47 points with their 1-0 win at Girona on Saturday.
NAN
Contact: [email protected]