Latvian Gulbis has already won twice on the ATP Tour this season, but he could not make it in to a third final despite a good start against Ferrer.
Having taken the first set 6-3 it appeared the in-form 25-year-old had Ferrer on the ropes, only for the Spaniard to hit back in style.
The second set was a close-run encounter, with Ferrer edging it 6-4 before he ran away with the decisive third set, booking his place in the final with a comfortable 3-6 6-4 6-1 win.
He will meet Grigor Dimitrov in Sunday's final after the seventh-seed Bulgarian also rallied from losing the opening set to book his place.
Sixth seed Benoit Paire took the lead after winning the first set 6-4 but the wildcard could not maintain his form as Dimitrov took the next two 6-2 6-2 to advance.