Del Potro, who hadn't played a competitive match for five weeks before traveling to Portugal, is 25-6 this year as he prepares for the French Open.
Del Potro will play third-seeded Stanislas Wawrinka on Saturday for a place in Sunday's final. The Swiss player, making his debut at Estoril, beat sixth-seeded Robin Haase of the Netherlands 6-1, 6-4.
Second-seeded Richard Gasquet reached his first semifinal of the season with a 7-6 (1), 6-2 win over Spanish qualifier Daniel Munoz de la Nava. The Frenchman will take on fourth-seeded Albert Ramos after the Spaniard overcame Portugal's Joao Sousa 6-2, 6-3.
The 18th-ranked Gasquet reached the 2007 final here before losing to Novak Djokovic.
The sixth-seeded Estonian, who won the Brisbane International in January, rallied from 2-5 in the second set against the Italian, who won three titles last year.
Kanepi will play Carla Suarez Navarro in the final, after the Spaniard beat Karin Knapp of Italy 6-4, 6-0.