Roger Federer produced an unconvincing display as he stuttered past Nicolas Almagro of Spain 6-3 6-7 (2-7) 7-5 to reach the Rome Masters semi-finals.
World number one Federer was not at his best against Almagro
The top seed squandered a match point in the second set before closing out.
The world number one will meet David Nalbandian in the last four after he thumped Croatian Mario Ancic 6-3 6-3.
Spaniard Rafael Nadal defeated Fernando Gonzalez 6-4 6-3 to reach the last four where he will meet Gael Monfils, who upset fifth seed Andy Roddick 6-2 6-3.
Nadal's victory was his 51st successive win on clay and will be favourite to beat fellow teenager Monfils for a place in the final.
In their only previous meeting, the Spaniard defeated Monfils with ease at Monte Carlo last year.
The French teenager raced to a 4-1 lead against Roddick who then had a timeout for treatment on his right arm and shoulder.
Monfils went on to wrap up the match in one hour and 10 minutes to reach his first Masters semi-finals.
Federer will be looking to improve his poor record against Nalbandian, with the Argentine one of the few players to have more wins than losses against the Swiss star.
Fourth seed Nalbandian has dropped just one set in his last nine matches.
But Federer believes he will have the energy to see off his in-form opponent.
"I'm prepared for a three-hour match, you know, I have to be. I play many matches that don't go on that long, but I have to be prepared for the unexpected," he said.
"I had a chance to win in the second set, I double-faulted, then he almost came back and beat me, so I got lucky today. It was a great match."
Nalbandian said he felt he was coming into form at the right time.
"I felt tired during my first two matches, but now I'm getting stronger and feeling more confident," he said.