The world number six was pegged back after winning the opener, but outlasted Robredo in the crucial third-set rallies to secure a 6-4 4-6 6-3 victory.
The contest went with serve until a run of three successive breaks from the seventh to ninth games, and Ferrer emerged the better from this exchange and then served out for the set.
It was a similar story in the second, but this time it was Robredo who claimed two breaks to Ferrer's one in the middle stages, and the encounter was level at a set apiece after 80 minutes of action.
Ferrer had to save three break points in his first three service games of the decider, and then it was Robredo's turn to hold firm under intense pressure from Ferrer in an epic sixth game.
The 32-year-old did not quite have enough to do the same when Ferrer took the eighth game to deuce and then snatched a break which put him 5-3 ahead, and he went on to serve out for the win.
Ferrer will play Julien Benneteau in the last four of the tournament in Ohio.