The Spaniard, who won his 22nd ATP title earlier this year in Doha, struck 17 winners and converted four out of five break point opportunities to claim a 6-3 4-6 6-2 victory in Brazil.
World No 9 Ferrer will take on the winner of the match between wild card Joao Souza and Andreas Haider-Maurer, who face each other later.
Fourth seed Fabio Fognini takes on Federico Delbonis while top seed Rafael Nadal, playing his first clay event of the season, faces sixth seed Pablo Cuevas from Uruguay for a semi-final berth.
In the women’s draw top-seeded Sara Errani reached the semi-finals after Sao Paulo native Beatriz Haddad Maia retired in the deciding third set.
Haddad Maia took the first set before stopping play with the score 3-6 7-6 (7-2) 3-0 in Errani’s favour.
Errani will face Sweden’s Johanna Larsson in the last four after she rolled past Dinah Pfizenmaier 6-4 6-0.
Second-seeded Irina-Camelia Begu also made the last four, beating Julie Glushko 6-1 6-2 and she will take on Anna Schmiedlova for a place in the final after the Slovakian beat Veronica Cepede Royg 6-3 6-1.