The Stormers have lost their past 10 games in New Zealand, and have just one win from four matches this season.
The late loss of hooker Ash Dixon, ruled out after a head knock at training, had little effect on the Highlanders, with Liam Coltman slotting in efficiently.
Coming off the bye, their scrum was solid and their work at the breakdown was relentless. While handling errors meant second-half tries went begging, the Highlanders always looked in control.
Continuity and quick hands gave them an early lead, flanker Liam Squire finishing off out wide after a strong carry from Teihorangi Walden.
Lock Chris van Zyl levelled for the Stormers in the 11th minute, latching onto an offload from elusive winger Raymond Rhule, as he spun in a tackle.
Young five-eighth Damian Willemse snared the lead five minutes later for the Stormers, the visitors capitalising on a sloppy Rob Thompson pass with the Highlanders hot in attack.
The 19-year-old playmaker pounced on the loose ball, and hared away 70 metres for the try and a 12-5 lead which lasted just four minutes before the Highlanders struck again.
Waisake Naholo's superb work under the high ball sparked the try, the All Blacks' winger showing speed and strength down the right touchline to beat three defenders before his final pass found Aaron Smith for the easiest of finishes.
Sarel Marais' 32nd minute penalty restored the Stormers' lead, but the Highlanders finished the half with a roar, Naholo scoring in a move which featured strong running from Lima Sopoaga and Thompson.
Ahead 19-15 at halftime, the Highlanders extended their lead eight minutes after the restart, No.8 Luke Whitelock powering over with a strong run off the ruck.
The scoreline stayed at 26-15 until the Highlanders finally managed some continuity and secured the bonus-point win with Smith's 79th-minute second try.