Last week, Murray lost out to the Spaniard in another energy-sapping encounter but on Friday afternoon, he overcame a slow start to claim a 2-6 6-4 7-6 victory.
The world number one only entered the event in order to gain some match practice after his early exit at the Monte Carlo Masters, and he looked rusty as Ramos-Vinolas easily wrapped up the opener.
The left-hander generally had the better of the second set as well, but he squandered five break-point opportunities and they went into a decider after Murray struck on his only chance.
The third went back and forth but after Murray prevented his opponent from serving out the match, he moved into a 4-0 lead in a tie-break before eventually closing it out by a 7-4 scoreline.
Murray will now play Dominic Thiem for a place in the final.