The British number two bounced back from a break down in the decider to register a 6-1 3-6 7-6 victory over the experienced Spaniard.
Edmund breezed through the opening set to suggest he could pull off a dominant win against the world number 15 but Ferrer responded in the second to set up a tense final set.
It appeared that Edmund's performance would end without reward after he fell a break down but at 4-5, he struck on the Ferrer serve for the fifth time in the contest.
The 21-year-old would then squander two match points in Ferrer's next service game but despite the match ending in a tie-break, Edmund made the most of establishing a 3-0 lead to record one of the most impressive scalps of his career.
Edmund will now play Andreas Seppi for a place in the semi-finals.