Scot grävde djupt för att hävda en 2-6 6-4 7-6 (7-4) seger i en match som varade två timmar 59 minuter.
Han återhämtade sig från två raster i det tredje setet, sin motståndare som tjänade för matchen vid en punkt.
Murray står nu inför Österrikes Dominic Thiem de senaste fyra.
Ramos-Vinolas, som är på en karriär-hög världsranking av 19, kapitaliserade på en sträng av otvingade Murray fel att ta den första uppsättningen men var fast i den andra som skotten kämpade tillbaka till nivå.
I Monte Carlo hade Murray lett 4-0 i finalen innan han kapitulerade till ett nederlag för Ramos-Vinolas.
I Barcelona var det spanjoren som höll en sista set bly, vinna de två första matcherna innan skada hans fot försöker få en volleyed avkastning, vilket ledde till en lång period av behandling.
Händelsen till en början gynnat Murray, som vann de följande tre matcherna, men Ramos-Vinolas stabiliserade fartyget och letade efter seger efter att bryta i nionde spelet.
Men Murray grävde djupt och bröt omedelbart tillbaka innan han tog matchen till en slips-break som han dominerade till stor del och clinched på sin andra match punkt.
"Det var uppenbarligen en mycket tuff match," sade Murray. "Det var raka motsatsen till matchen vi hade förra veckan där han förmodligen idag förtjänade att vinna. Han skapade många fler chanser, han tjänade för matchen och kunde inte riktigt få det.
"I förra veckan hade jag 4-0 [i den tredje uppsättningen], jag kände att jag hade alla chanser. Ibland händer på lermatcher på det här sättet, så mycket glad att komma igenom."
Rafael Nadal, en 10-faldig vinnare i Barcelona, gick Murray i de senaste fyra artighet av en 7-6 (7-1) 6-2 seger över koreanska kval Hyeon Chung.
Den spanska 14-faldiga Grand Slam mästare, 30, tar på sig Rysslands Karen Khachanov eller argentinska Horacio Zeballos i de senaste fyra.
Storbritanniens Aljaz Bedene fortsatte sin vinnande körning med en straight-set vinna över andra fröet Ivo Karlovic för att nå den ungerska öppna semifinalen.
Brittisk nummer fyra Bedene bröt Croat's tjänar tidigt i båda uppsättningar på väg till en 6-4 6-3 seger, och en 15: e-streck seger.
Den 27-årige, rankad utanför topp 100 i början av mars, har klättrat till världsnummer 68.
Han möter fjärde frö Fernando Verdasco eller andra kval Laslo Djere nästa.
Bedene kom genom kval i Budapest för att nå sin första ATP Tour semifinal sedan januari 2016.
Han vann också back-to-back-titlar på den andra nivån ATP Challenger Tour tidigare denna månad.
Specialisten har nu vunnit 22 av hans senaste 23 matcher, med det enda nederlaget på hårda domstolar vid Miami Masters.
Första världen Andy Murray fick hämnd för förra torsdagens nederlag av Albert Ramos-Vinolas i Monte Carlo genom att slå spanjoren för att nå de sista fyra av Barcelona Open.