Up 22-3 just before the halftime break, but the Lions found their rhythm in the second half to set up a showdown with the Crusaders in Johannesburg next weekend.
It ended an eight match losing streak for the Lions against the Hurricanes, including last season's Super Rugby final when they were beaten 20-3 in Wellington.
It also extends the stay of Gloucester-bound Lions coach Johan Ackermann for one more game, when he will have the chance to end his four-year stay by helping them become just the second South African team, after the Bulls, to lift the Super Rugby trophy.
A Lions win looked unlikely as the Hurricanes scored three unanswered tries to halfback TJ Perenara, wing Wes Goosen and loose-forward Ardie Savea as they piled on the pressure and fed off mistakes made by the jittery Lions.
But when prop Jacques van Rooyen bulldozed over for a try just before half-time, there was a massive shift in momentum.
Suddenly the Lions were rampant and dominating the collisions, with the Hurricanes battling to contain the physical onslaught.
Hlafback Ross Cronje, hooker Malcolm Marx, centre Harold Vorster, flank Kwagga Smith and flyhalf Elton Jantjies all scored tries.
A joint Super Rugby record 15th try of the season for centre Ngani Laumape stemmed the tide, as the Hurricanes ran out of puff in the altitude of Johannesburg.
Photo: PhotoSport There'll be no repeat of 2016 for the Hurricanes.