The Reds held a 15-8 lead five minutes after halftime following tries by hooker Brandon Paenga-Amosa and fullback Hamish Stewart.
But the Highlanders put them under incessant pressure in their own half with their powerful carries and pace out wide.
The Reds held out until just before the hour-mark when giant forward Liam Squire, back in action from a broken thumb, crossed for a try to level the scores, before a late penalty from right in front of the posts by Sopoaga won the game.