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).
Federer 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.
Hurkacz had two break points but could seize neither.
With Hurkacz dispatched, Federer turned his thoughts to what will be his 39th career encounter with Nadal.
The Spaniard leads 23-15 on a head-to-head basis but the Swiss has won the last 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 on his way to his fifth title at Indian Wells.
Saturday’s other semi-final will match Austrian seventh seed Dominic Thiem against Canadian 13th seed Milos Raonic.