Defending champion Federer, chasing his seventh crown on the Halle grasscourts, will meet world number 69 Falla after he overcame home favourite Philipp Kohlschreiber 5-7 7-6 (5) 6-4.
Number two seed Federer fired 10 aces against Nishikori as he dismissed his opponent in 73 minutes.
The Japanese offered some resistance in the second set, forcing a tiebreak that he led 4-2, but the Swiss captialised on some wayward hitting to win five points in a row and ease to victory.
Falla needed two hours 21 minutes to defeat German Kohlschreiber.
Having lost the first set Falla, who has not beaten Federer in six attempts, fought back superbly against a player ranked 42 places above him to steal the next two sets and reach the second final of his career.
"I'm absolutely delighted. It was a very hard match," Falla told reporters.
"I've always had to work hard this week because I've fallen behind in every match. But grass is my favourite surface and I've got a chance against anybody on here."