Having cruised to easy victories in their previous games, the Ashes got a bit of a wake-up call in the opening 40 minutes on Saturday.
They were second best to a Perranporth side who disrupted Saltash’s normally free-flowing style.
The Ashes had taken the lead in the 15th minute when captain Jay Moriarty scored on the left wing.
But the visitors, who had started the day in third place, went in front after 20 minutes when a home yellow card resulted in a Brewers penalty, which eventually led to a converted try.
Shortly afterwards a breakaway try from inside their own half gave Perranporth a 14-5 lead.
The Ashes were very flat and could not capture their usual brand of rugby but did reduce the gap when a driving maul allowed hooker Rob Walsh to touch down.
This seemed to spur Saltash to up their game in an extended first period and Will Morton got a try which was converted by Ryan Cruickshanks to give them a narrow 17-14 lead at the interval.
The second half got off to a good start for Saltash when Danny Snook darted over the Brewers’ line after 43 minutes for a converted try as the home side wrestled back control of the game.
Perranporth continued to look dangerous in their attacks, but Moriarty eased the pressure when he scored a converted try after 58 minutes to make it 31-14.
Another forward drive by Saltash was rewarded with hooker Walsh touching down again, but Perranporth hit back with their own try six minutes later.
However, a converted score by Will Morton and a touch-down by Lewis Stuart right at the end gave Saltash a flattering victory.
The Ashes will face another big test next week when they visit fellow unbeaten side Helston, who sit in second place two points behind the Moorlands Lane club.