Dodig, playing in the final quarterfinal match, defeated seventh-seeded Marin Cilic 6-2, 7-6 (8-6). Dodig finished with five breaks, with three coming in the first set. He and Cilic traded two breaks each in the second set before Dodig claimed the win in the tiebreaker.
Ferrer ousted sixth-seeded Nicholas Almagro 6-3, 7-5 with a break in each set. Ferrer won 75 percent of the points on serve, saving all four of Almagro's break-point chances.
Alexandr Dolgopolov rolled to a 6-0, 6-2 rout of Marcel Granollers in 64 minutes. Dolgopolov lost 10 points in seven games serving and won 56 percent of the points when Granollers served. He had five breaks in seven receiving games.
The fourth semifinalist is Jurgen Melzer, who got by David Goffin 7-6 (9-7), 6-4.
Saturday's semis will mark the first meeting between Ferrer and Dodig. Melzer won his only previous match versus Dolgopolov, a three-set match this year in Beijing.