Soderling, this year's surprise French Open finalist, broke Almagro's serve twice in the opening set. He broke Almagro to lead 5-3 in the second set. Soderling then wrapped up the match in the next game when Almagro's service return sailed long.

It was Soderling's second win over Almagro in less than a month. He also won a third-round match at Wimbledon.

"I played well today," Soderling said. "I hit the ball well. Maybe I didn't move at 100 percent. Almagro is an excellent clay-court player and I beat him in two straight (sets), so that is very good for my confidence.

Soderling will play Vinciguerra in an all-Swedish match. Vinciguerra rallied from a set down for the third straight match to beat fourth-seeded Jurgen Melzer of Austria 2-6, 6-4, 6-3.

Robredo, who is playing in Bastad for the ninth straight year, closed in on a third final appearance by defeating Teimuraz Gabashvili of Russia 6-4, 6-0. The third-seeded Spaniard improved to 23-6 at the tournament.

He will play Monaco, who advanced when top-seeded Fernando Verdasco of Spain retired with a right calf injury trailing 6-1, 3-1.

"In the first game of the match, I pulled a muscle in my calf," Verdasco said. "It was really hard to play after that. I had real pain when serving, especially since the injury was in my right leg."

Monaco is bidding to reach his second clay-court final of the season. He lost to Robredo in his native Argentina in February.