Porteous began the final round two behind Slattery but birdies on the first two holes saw the 23-year-old South African draw level with the Englishman.
Porteous won the Joburg Open in January 2016, but a missed cut in last year's Czech Masters was the first of 14 early exits in 16 events, prompting a return to his former coach.
"To get my second European Tour win under the belt just feels fantastic", he said.
"I've been doing the right things and surely but surely it's been getting better".
The South African recorded his first top-10 finish of the season last week in Denmark and carried that form on in Prague, carding six birdies and three bogeys at Albatross Golf Club to close with a 69. To then find yourself again is key and I can't thank my sponsors enough for helping me through thick and thin.
Driving into a hazard on the sixth cost Hanson a double bogey and when he dropped another shot on the eighth, Slattery took full advantage with birdies on the seventh and ninth to move into the lead.
Huddersfield's Hanson is now 10 under overall leading fellow Brit Lee Slattery by three shots
'I'm sure this evening's not going to be the most professional moment of my life, but there's nothing wrong with having a bit of a celebration!'
He bounced superbly with birdies at six and nine before handing them back with consecutive bogeys at 10 and 11 to fall one shot behind.
"It's just one tournament at a time, one shot at a time and just make sure I do the right things and be professional in the way I do everything".
Slattery admitted he benefited from completing his second round on Friday while some players had to play 36 holes on Saturday, adding: "I think it was very important to have a long rest and get out there today".
Porteous was one shot ahead when the pair stood on the 16th tee and, after he put his tee shot on the par-3 to tap-in distance, the tournament looked to be his.
After recording the best final round of 67, another Englishman Tom Lewis was tied for third with Pontus Widegren of Sweden, one shot behind Slattery.