Van Pelt started the day four shots behind overnight leader Emiliano Grillo and grabbed the lead when Grillo bogeyed two of his last three holes.
The 20-year-old Grillo had moved to 13 under with birdies at the sixth and ninth holes.
But bogeys at 10 and 11 dropped Grillo back into the chasing group and Dufner, who also shot 67 on Saturday, took a share of the lead with five birdies between the seventh and 12th holes.
Grillo reclaimed a one-shot lead with a birdie at No. 12 but Van Pelt finished with four birdies over the last eight holes.
Van Pelt sealed his lead with a monster 55-yard putt for birdie on the 18th.
"Once in a while the hole just gets in the way," Van Pelt said. "I was just trying to get the ball down there and two-putt. Lo and behold, the thing goes in the hole.
"It was just nice to finish with a birdie like that and hopefully I'll take momentum in tomorrow."
Van Pelt said Grillo remained a threat going into the final round. The Argentine, battling to secure his European Tour card, is currently ranked 112th in the Race to Dubai with the top 115 after next month's Hong Kong Open retaining their cards for next season.
"He played a lot better than his score today," Van Pelt said. "He probably had five or six putts that looked like they were going in, but hit the edge. That's just golf. Some days they go in, other days they hit the edge."