The Spaniard had caused an upset when he defeated the world number one in the third round in Monte-Carlo last week, and he looked poised for a repeat.

But Ramos-Vinolas missed a chance to serve for the match and it was Murray who came through after two hours and 59 minutes.

Tennis
What have we learned from Murray's last year?
20/10/2020 AT 10:11

Andy Murray

Image credit: Getty Images

Murray, who has never reached the final in Barcelona, was forced to dig deep after being broken twice in an error-strewn first set, where his first-serve percentage was down at 35%.

The 29-year-old then saved three break points in the ninth game of the second set before taking it to a decider after capitalising on his first break-point opportunity in the 10th.

After both dropping serve early in the final set, world number 19 Ramos-Vinolas had the chance to serve for the match after breaking the Scot in the ninth game, but Murray showed his mettle to break back immediately and take it to 5-5.

A tie-break soon followed, and Murray raced to a 4-0 lead before clinching it 7-4.

Murray will now face Dominic Thiem for a place in the final after the Austrian fourth seed cruised past Japanese world number 91 Yuichi Sugita 6-1 6-2 to reach the last four.

Defending champion Rafael Nadal’s was made to work against South Korean 20-year-old Hyeon Chung, but prevailed 7-6(1) 6-2 to reach the semis.

Standing in between Nadal and a final spot is Horacio Zeballos, who comfortably beat Karen Khachanov 6-4 6-1 in the late game.

Nadal is chasing his 10th title in Barcelona as he gears up for the French Open, where he has not won since 2014.

QUARTER-FINAL RESULTS

Dominic Thiem (Aut) beat Yuichi Sugita (Jpn) 6-1 6-2

Andy Murray (Gbr) beat Albert Ramos-Vinolas (Spa) 2-6 6-4 7-6

Rafael Nadal (Spa) beat Hyeon Chung (Kor) 7-6(1) 6-2

Horacio Zeballos (Arg) beat Karen Khachanov (Rus) 6-4 6-1

ATP Cologne
Injured Andy Murray pulls out of Cologne
18/10/2020 AT 14:53
ATP Cologne
'I need to get back to playing my game' - Murray on latest first-round exit
14/10/2020 AT 08:40