Nadal comes into the match with some injury concerns, as he appeared to tweak his knee during his quarterfinal win over Karen Khachanov on Friday.
Federer, who is looking to follow up his 100th title in Dubai last month, had a more comfortable outing in ending the run of young Pole Hubert Hurkacz 6-4 6-4.
"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.
"Overall I'm very pleased with that performance", said Federer, who has reached the final four without dropping a set, winning 38 of his 39 service games.
"It's been a tough one; he was a tough opponent and I didn't have the best start but I managed to come back and fight", he said. He's ranked No. 2 in the world and has a match record of 11-2. The first semifinal begins at 2 p.m. EST.
Brexit delayed amid Tory chaos over way forward
A Downing Street spokeswoman said: "She has been working tirelessly to make a deal and she will continue to do that". May plans to hold another vote on her deal next week although lawmakers have already rejected it twice.
In the second set, Khachanov misfired to concede a break but Nadal could not consolidate as the Paris Masters champion broke back.
Hurkacz avoided being broken again and did have a break point chance at 5-4 but couldn't avoid defeat.
"Hopefully I am going to be ready for it". So I hope I can keep that up. Nadal was leading the head to head meetings 23-15, but Federer had won the last five matches played: 2015 Basel final, 2017 Australian Open, Miami and Shanghai finals, 2017 Indian Wells fourth round.
"A lot of time has gone by, unfortunately maybe for the rivalry for us, or for me. I think that kind of attention to detail can only be a good thing".
Federer will therefore advance to the final with a walkover and face Dominic Thiem or Milos Raonic.