Jerome Porical's kicking and a try from centre Rudi Coetzee put the home side in a commanding 14-3 lead at the interval.
But a brace of tries from Sam Gerber, sandwiched between a score from Kisi Pulu for the home side, kept Aviron in the contest and had the hosts nervous going into the final stages.
Two crucial kicks, however, from Nicolas Laharrague, restored Perpignan's cushion in the closing minutes and made sure that they claimed an 11th victory of the Top 14 campaign.
The win lifts them above Biarritz and Toulon into eighth position, with both those sides set to play on Saturday.
Aviron remain seventh, just a point ahead of Perpignan as the battle for play-off places intensifies.