Pace bowler Junior Dala took 4-39 and Harmer 4-33, with the latter ending up with match figures of 8-103.
At Newlands, Ryan Rickelton struck a match-saving 102* for the Central Gauteng Lions as Western Province had to settle for a draw.
The Lions finished on 244-7, still needing 122 runs to win.
Earlier, WP declared their second innings closed on 337-3 thanks to an unbeaten 152 from Jonathan Bird and 71 from David Bedingham.
It was 20-year-old Bird’s first first-class century.
The Boland Rocks wrapped up an innings and 20-run victory over the North West Dragons in Paarl.
Having begun the day on 259-7, the Dragons – who were following on – could only reach 295. No 8 batsman Duan Jansen offered some resistance with a spirited 55* off 59 balls.
Veteran leg-spinner Shaun von Berg took 4-109.
The KZN Dolphins and EP Warriors drew their match in Durban after the visitors had reached 137-4 in 62 overs in their second innings.
Diego Rosier (26*) and Sinethemba Qeshile (33*) added 71 for the fifth wicket.
Earlier, the Dolphins were bowled out for 451 in their first innings, a lead of 65.
Dolphins vs Warriors scorecard
Division Two:
Mpumalanga Rhinos vs Eastern Storm
Limpopo Impalas vs South Western Districts