Dan Bird’s side had lost their previous two fixtures, but with a strong wind behind them at Pennypot, they had their visitors under the cosh straight from kick-off.
Hugh Tatlow and Gareth Bass both went close to crossing the try-line in the opening stages, but the Pythons were held up on both occasions.
Castleford looked dangerous themselves when they finally gained some possession, but when their first meaningful attack of the game broke down, Harrogate countered and following a scrum, Ross Fallenstein became the third home player to be held up over the line.
At the other end, an interception almost saw the visitors’ wing land the day’s first try, but Bass and Ian Binns recovered in time to haul him down short of the line.
Both sides then spurned the opportunity to take the lead when they missed penalties, the wind making kicking for goal an extremely difficult task, and the first period ended at 0-0.
Coach Bird rang the changes at the break and was immediately rewarded by a fast start to the second half.
When Marcus Fotherby stole a line-out on the away 22, Joe Bentham was again ruled held up, but from the resulting scrum, number eight Reah picked up and burrowed over.
Fallenstein added the conversion for 7-0 on 50 minutes.
Both sides then lost players to the sin-bin, and following a spell of pressure, Castleford took a quick tap from a penalty and crashed over for a converted try between the posts in the 66th minute.
Not to be denied, the Pythons came again and just two minutes after conceding, they were back in the lead.
From a Castleford line-out on their own 10-metre line, the visiting hooker missed his intended target and Reah collected the loose ball before travelling a short distance and touching down.
Fallenstein’s conversion rounded off the scoring at 14-7.