Nishikori started the semi-final strongly against the world number three but was 6-4 2-0 when he threw in the towel because of a knee problem.
Murray, who beat the 23-year-old in the quarter-finals of last season's Australian Open, was a break down in the first set but won five games in a row seal it against his fifth-seeded opponent.
Nishikori took a medical timeout at the end of the set, but took the court for the start of the second.
Murray broke in the first game, however, and backed it up by holding his service game, at which point Nishikori decided enough was enough.
In the final Murray will face Grigor Dimitrov, who beat Marcos Baghdatis of Cyprus 6-3 5-7 7-6 (7/5).
Whereas Murray was off court in 45 minutes, the Bulgarian, ranked 48th in the world, was pushed to the limit in a little under two and a half hours of tennis against Baghdatis.