The 71st-ranked Almagro saved the only two break points he conceded in the entire match and served seven aces to reach his second final after losing to Dominic Thiem in Argentina in February.
The 30-year-old Almagro has 12 career titles, all on clay. He hasn't won a tournament in four years.
The eighth-seeded Carreno Busta, 24, upset top-seeded Gilles Simon in Friday's quarterfinals.
The 50th-ranked Spaniard played in his first final at the Brazil Open in February, losing to Pablo Cuevas.