The 26-year-old Nadal, who is seeking his 52nd career ATP Tour title, defeated Almagro 7-5, 6-4 in their one hour, 48 minute semi-final match.
Nadal has now reached his third-straight final after missing more than seven months with a left knee injury.
“I started the match a little bit nervous. I have not touched the ball as clean as in previous days and I played shorter than I would have liked, but I also faced a player who hits the ball very hard,” said Nadal, who is looking for his 38th clay court title Saturday.
“In the second set I attacked a little more and I could lead my shots a little better.”
Nadal won this event eight years ago in his only previous appearance.
In Saturday’s final, he will square off against top seed Ferrer, who needed three sets to beat Italian Fabio Fognini 6-3, 6-7 (5/7), 6-1 in the other semi-final.
Nadal claimed his victory on his first match point against third seeded Almagro, running his win streak over the fellow Spaniard to a perfect 9-0.
Almagro hit a forehand into the net to set up match point, then Nadal won it when Almagro hit another forehand wide down the line.
Nadal finished with two aces, three double faults and saved all four break point chances he faced. Almagro fired seven aces but had his serve broken twice.
Almagro, a two-time winner here (2008 and 2009), was making his ninth career appearance in this event. He is now 26-7 overall in the tournament.
Defending champ Ferrer needed two hours and 23 minutes to eliminate Fognini. The 30-year-old Ferrer is into his fourth straight Mexican Open final and is now on a 19-match winning streak in the tournament. He has a career mark of 22-3 in the event.
Nadal has a 16-4 career record against Ferrer, including a 13-1 mark on clay.
Ferrer’s lone clay court victory over Nadal came in their first meeting at the 2004 MercedesCup in Stuttgart, Germany.
On the women’s side, Spaniard Carla Suarez Navarro advanced to the final by easily beating compatriot Silvia Soler-Espinosa in two sets, 6-2, 6-1, in a match that lasted one hour and eight minutes.
In the other semi, Italian top seed Sara Errani booked her spot in the final with a dominating 6-2, 6-1 win over France’s Alize Cornet.