Ferrer said he was "very happy" to reach the championship match.
"Barcelona is the tournament that most motivates me, it is the tournament I most want to win."
Nadal, who beat Ferrer last Sunday in the Monte Carlo Masters final, defeated the unseeded Croatian Ivan Dodig to set up the rematch.
Nadal, the five-time Barcelona champion, beat Ferrer in the 2008 and 2009 finals, and he is optimistic of his chances of a repeat.
"I like to look at stats that favour me," he said. "But every game is different and David is having a great beginning to the year." It was an almost error-free Ferrer who took advantage of an inconsistent Almagro, who later said of his opponent: "David is playing spectacularly well right now.
"He had the answer to all my weapons. You always have to play one ball too many that he ends up winning."
In contrast to Ferrer, Nadal put in a decidedly patchy effort to defeat Dodig, though a 6-2, 6-3 score may not reflect that.
Nadal lost breaks early in each of the sets against Dodig and had to fight through for his 33rd consecutive win on clay, a streak that dates back to a fourth-round loss to Robin Soderling at Roland Garros in 2009 at the French Open.
The win was also the Mallorcan's 500th, making Nadal, 24, the second-youngest to reach the milestone. Bjorn Borg was 23 years, seven months when he earned his 500th victory.
In Morocco, the seventh-seeded Simona Halep of Romania defeated the unseeded Belgian Kirsten Flipkens 7-5, 6-4 to reach the finals of the Grand Prix de SAR La Princesse Lalla Meryem at the Royal Tennis Club de Fes. Halep will face Alberta Brianti of Italy, who reached the final when Dinara Safina of Russia retired from their match with a back injury.