Before this tournament, Dodig had not recorded a singles win on the main tour since June 2016 because he'd been focusing on doubles.
The Croatian, ranked 412th in singles and 7th in doubles, is seeking his second career singles title after winning in Zagreb in 2011.
For the 14th-ranked Goffin, the tournament marked his return from an ankle injury at the French Open which forced him to miss the entire grass season.
Dodig next plays lucky loser Andrey Rublev of Russia, who eliminated defending champion Fabio Fognini of Italy 6-7 (5), 6-2, 7-6 (2).
Also, fourth-seeded Paolo Lorenzi of Italy came from a set down to beat eighth-seeded Jiri Vesely of the Czech Republic 1-6, 7-5, 6-3. It was the first victory for Lorenzi against the Czech after three losses at ATP events.
In an all-Italian semis, Lorenzi faces Alessandro Giannessi, who defeated Rogerio Dutra Silva of Brazil 6-7 (3), 6-2, 7-5 in the quarterfinals.