The visitors led after five minutes with a stunning try from full-back Harvey Elms, who gathered in his own half and raced away then sold an outrageous dummy before touching down.
Joe Helps and Jamie Forbes exchanged penalties but two more successful kicks from Helps saw the hosts lead 9-8 at half-time.
That gap grew within two minutes of the restart when Martin Christie forced his way over from close range and Helps converted.
Within two minutes, Elms had raced over for a second try and Forbes converted. A penalty apiece for Helps and Forbes kept the game finely poised entering the last ten.
The home side struck the crucial blow when Euan McKirdy dived over with eight minutes to play and the conversion by Helps meant that there was no losing bonus point for Currie.