Dolgopolov held his nerve in the deciding set, taking Ferrer's serve on the only chance he had to reach his third semi-final of the season - all of them on clay. He'd lost to Ferrer in their previous three matches.
An Australian Open quarter-finalist this year, Dolgopolov will next play Victor Hanescu of Romania, who advanced when Robin Haase of the Netherlands retired from their quarter-final with a right ankle injury while trailing 6-2, 2-0.
Nicolas Almagro also reached the last four by beating fellow Spaniard Pablo Andujar 6-1, 6-4.
The third-seeded Almagro broke Andujar five times. The Spaniard moved on to face either second-seeded Tomas Berdych of the Czech Republic or Ernests Gulbis of Latvia.
Results on Thursday from the Nice Open (seedings in parentheses):
Singles
Quarter-finals
Victor Hanescu, Romania, def. Robin Haase, Netherlands, 6-2, 2-0, retired.
Nicolas Almagro (3), Spain, def. Pablo Andujar, Spain, 6-1, 6-4.
Alexandr Dolgopolov (5), Ukraine, def. David Ferrer (1), Spain, 6-4, 1-6, 7-5.
Tomas Berdych (CZE x2) bt Ernests Gulbis (LAT) 6-1, 6-4.