Davydenko, who is playing his fifth tournament of the year after a two-month layoff because of a heel injury, also reached the semifinals of the Barcelona Open last month.
Fish, an American who was making his Estoril debut, made 51 unforced errors in his first clay-court encounter with the 11th-ranked Davydenko.
The Russian broke the 24th-ranked Fish in the opening game and avoided a break point in his final service game to win the first set with an ace. Davydenko won eight straight points as he broke Fish in the fifth game of the second set and then held serve to open a 4-2 lead.
Makarova will meet unseeded Yanina Wickmayer of Belgium in the final on Saturday. Wickmayer's semifinal opponent, Shahar Peer of Israel, retired with an ankle injury while trailing 3-0 in the first set.