The Lions fought back from 3-22 down to beat the Hurricanes 44-29 in their Super Rugby semifinal at Ellis Park on Saturday.
The Lions host another New Zealand outfit, record seven-time champions Crusaders, in the final next Saturday, seeking a first success in the competition.
But some gloss was taken off the victory by the controversial yellow-carding of Hurricanes flyhalf and 2016 Rugby Player of the Year Beauden Barrett at a key stage of the semifinal.
While All Blacks playmaker Barrett sat in the "sin bin", the South Africans scored two tries and transformed a seven-point deficit into a 39-29 lead at Ellis Park stadium.
South African referee Jaco Peyper judged that after making a tackle, Barrett correctly rolled away, but illegally dragged the ball with him.
However, big-screen replays suggested Barrett accidentally pulled the ball away and was not guilty of a cynical foul.
The incident could heighten calls for neutral match officials in the closing stages of an annual competition involving Argentine, Australian, Japanese, New Zealand and South African franchises.
By the time Barrett returned, the defending champions were on the back foot and an intercept try by Lions flank Albertus Smith completed a particularly pleasing success.
Lions lost the 2016 final to Hurricanes in Wellington, their 10th defeat by the New Zealand outfit in 11 meetings, including a 17-50 drubbing at Ellis Park last season.
"I am the proud leader of a wise and fearless team," boasted Lions skipper and flank Jaco Kriel, deputising for injured Warren Whiteley, who will also miss the final.
"They displayed tremendous character to win after trailing by 19 points. We got a half-time rev from the coach [Johan Ackermann] and dug deep in the second half to succeed."
Hurricanes skipper and hooker Dane Coles, making his 100th Super Rugby appearance, admitted that the Lions were impossible to stop in the second half.
"They developed momentum that blew us away and the better team won. The Lions have improved greatly since losing to us in the final last year," said the All Black.
Hurricanes built the 22-10 half-time advantage through clinical punishment of wayward passes as the Lions committed unforced errors under pressure.
Tries just before and after half-time from prop Jacques van Rooyen and and scrumhalf Ross Cronje turned the tide.
As the stamina-sapping effects of the altitude gradually told on the defending champions, defence gaps appeared and the Lions took full advantage.
Driving mauls proved an especially profitable tactic, leading to several tries, and lock Franco Mostert was outstanding for the Lions in the set-pieces and loose exchanges.
Van Rooyen, Cronje, hooker Malcolm Marx, centre Harold Vorster, flyhalf Elton Jantjies and Smith were the Lions' try scorers.
Jantjies, back in form after a disastrous goal-kicking display in a close quarterfinal win over fellow South Africans Sharks, slotted four conversions and two penalties.
Scrumhalf Thomas Perenara, South Africa-born wing Wes Goosen, flank Ardie Savea and centre Ngani Laumape scores tries for Hurricanes.
The Barrett brothers shared the goal-kicking with full-back Jordie kicking two conversions and a penalty and Beauden one conversion.
Man of the match: The Barrett brother dominated play in the first half, but were quiet in the second 40 minutes. Malcolm Marx and Ross Cronje had powerful games for the Lions, while Ruan Akermann was outstanding in the second half. However, the award goes to Lions lock Francois Mostert for his work rate across the park and his magnifencent display in the line-outs.
Tries: Van Rooyen, Cronje, Marx, Vorster, Jantjies, Smith
Cons: Jantjies 4
Pens: Jantjies 2
Tries: Perenara, Goosen, Savea, Laumape
Cons: J Barrett 2, B Barrett
Pen: J Barrett
Yellow card: Beauden Barrett (Hurricanes, 58 - cynical play, playing the ball on the ground)
Lions: 15 Andries Coetzee, 14 Ruan Combrinck, 13 Lionel Mapoe, 12 Harold Vorster, 11 Courtnall Skosan, 10 Elton Jantjies, 9 Ross Cronje, 8 Ruan Ackermann, 7 Albertus Smith, 6 Jaco Kriel (captain), 5 Franco Mostert, 4 Andries Ferreira, 3 Ruan Dreyer, 2 Malcolm Marx, 1 Jacques van Rooyen.
Replacements: 16 Armand van der Merwe, 17 Corne Fourie, 18 Johannes Jonker, 19 Lourens Erasmus, 20 Cyle Brink, 21 Francois de Klerk, 22 Rohan Janse van Rensburg, 23 Sylvian Mahuza.
Hurricanes: 15 Jordie Barrett, 14 Nehe Milner-Skudder, 13 Vince Aso, 12 Ngani Laumape, 11 Wes Goosen, 10 Beauden Barrett, 9 Thomas Perenara, 8 Brad Shields, 7 Ardie Savea, 6 Vaea Fifita, 5 Sam Lousi, 4 Mark Abbott, 3 Jeffery To’omaga-Allen, 2 Dane Coles (captain), 1 Ben May.
Replacements: 16 Ricky Riccitelli, 17 Chris Eves, 18 Loni Uhila, 19 Reed Prinsep, 20 Callum Gibbins, 21 Te Toiroa Tahuriorangi, 22 Otere Black, 23 Julian Savea.
Referee: Jaco Peyper (South Africa)
Assistant referees: Marius van der Westhuizen (South Africa), Rasta Rasivhenge (South Africa)
TMO: Marius Jonker (South Africa)