The world number one, who is yet to win the title here after five previous visits, finally snapped Almagro's resistance in the 12th game of the deciding set when his opponent netted a forehand after fending off several match points.
Federer had looked comfortable when he moved a break ahead in the second set after winning the first, but a double fault on his first match point opened the way for 20-year-old Almagro, a winner in Valencia last month, to come storming back.
Federer steadied himself in the decider, but looked tense in comparison with his opponent, who struck a pair of nerveless winners to save break points in the sixth and eighth games.
Almagro wavered when serving to take the match into a deciding tiebreak, and although he saved three match points he could not fend Federer off any longer.
"I'm prepared for a three-hour match, you know, I have to be," Federer said of his semi-final with Nalbandian, one of few players with a winning record over the Swiss.
"I play many matches that don't go on that long, but I have to be prepared for the unexpected.
"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."
Federer can expect another battle with Nalbandian, who has won six of their 10 previous meetings including in the season-ending Masters Cup final last year.
|
Most of the buzz in the Italian capital this week has centred on the prospect of another showdown between Federer and defending champion Rafael Nadal, who has won his last 50 matches on clay, although Nalbandian insists both are beatable.
"They aren't out of reach, even if they are playing really well at the moment," said the world number three.
"It's right to respect them, but I believe that our respect is becoming another weapon for them."