The multiple Grand Slam champions both won their quarter-finals on Friday, although Nadal in particular had to work hard to overcome Russian Karen Khachanov 7-6(2) 7-6(2) in a match during which he required treatment on the knee.
"I am used to playing with some issues, so I just tried to be focused. It's one of these victories today I'm really proud of," Nadal told reporters, declining to absolutely guarantee that he would be okay to play on Saturday.
"Nobody can guarantee anything about what can happen the next day, but of course my goal is to be ready for tomorrow."
Zverev downs Berrettini to clinch second Madrid crown
Federer, meanwhile, broke Pole Hubert Hurkacz once in each set for a 6-4 6-4 win in the first career meeting between the pair and was perhaps more bothered by his early start.
"It's a bit different," the Swiss told reporters. "They warned me they were going to put me on at 11.00 (a.m.). What can I say? You have no choice. "I'm very excited to be in the semis here, not that I didn't expect it. I'm holding serve comfortably, in a good place mentally when I go into my service games."
It was the first match between the pair and far from one-sided, as Hurkacz had two break points but could seize neither.
"I was trying to fight, compete and believe I can do it," Hurkacz told reporters. "Roger was playing great in the crucial moments. I had some small chances in the second set.
"He's changing directions all the time (with his serve) so it's really hard to read it."
Nadal leads Federer 23-15 on a head-to-head basis but the Swiss has won the past five encounters.
They have not met since Shanghai in 2017, the same year that Federer beat Nadal 6-2 6-3 in the fourth round at Indian Wells.
The other semi-final will match Austrian seventh seed Dominic Thiem and Canadian 13th seed Milos Raonic
Zverev stuns Nadal to reach Madrid semi-finals
Nadal: Covid-19 pandemic made me question if I should keep playing