Harris is now one win away from becoming the first British male to reach the final at Eastbourne.
The British number five from the Isle of Man, who spent the first few years of his professional career driving to tournaments around Europe in a transit van, fought back from losing an opening-set tie-break.
Harris, ranked 139 in the world, struck 33 winners and secured victory with an inch-perfect backhand return to the baseline on his third match point.
“I had amazing support out there and it got me through that last set,” said the 29-year-old after upsetting the world number 49.
Harris will face Australian qualifier Max Purcell – a 6-3 7-6 (7-4) victor against Serbia’s Miomir Kecmanovic – in the semi-finals.