The world number seven needed almost three hours to overcome his French opponent 7-6(4) 4-6 7-6(6), and he will now look to end Murray's hopes of a second Olympic gold in Rio.
Nishikori had a chance to win the opener without the need for a tie-break when he earned three set points, but Monfils hung on and the entire set stayed with serve.
The Japanese only needed one more set point in the breaker to take it 7-4, though, and he made a perfect start to the second set too by claiming the first break of the match in the opening game.
Monfils responded in kind immediately, though, and broke again in the final game of the set to take it 6-4 and force a decider.
Neither player earned so much as a single break point in the third set as it went to another tie-break, and Monfils quickly raced into a 4-0 lead.
Indeed, the world number 11 looked on course for victory when he had three match points at 6-4, but Nishikori responded by winning five points in a row to book his place in the last four.