Titans 155 for (Markram 33) beat Warriors 149 for 6 (Ackerman 34, Jonker 33) by six runs
Titans claimed a second successive T20 title and denied Warriors a first trophy in seven seasons by defending 156, despite losing their captain Albie Morkel to a hamstring injury in their first over in the field. Lungi Ngidi and Junior Dala both conceded under seven runs an over but the hero was Malusi Siboto who defended 12 off the final over to secure a tense win.
A penultimate over that was boundary-less and cost Dala just six runs set the tone for Siboto's heroics but they were not without drama. He sent down a slower ball first delivery, then a dot ball, and then only three singles to all but guarantee Titans the win. However, with what should have been the final ball, Siboto bowled a leg-side wide to leave open the prospect of a Super Over deciding the tournament. But he finished on target to leave Warriors wondering how they had left it to their seventh-wicket pair of Lesiba Ngoepe and Sisanda Magala needing to score 31 off 22 balls.
The enormity of the occasion - Warriors last played in a final in the 2010-11 season - seemed to overwhelm them but they showed glimpses of breaking their drought. They pulled Titans back from 105 for 3 to restrict them to a below-par score at altitude but none of their senior batsmen could anchor the chase.
Warriors reply began tentatively when Clyde Fortuin hit the ball straight to Aiden Markram at backward point but Titans' joy soon turned to worry. Morkel grabbed at his hamstring in pain as the wicket fell and could not complete the over.
David Wiese took over the captaincy and bowled the next over from Morkel's end, with equal success. He had the leading run-scorer in the competition, Jon-Jon Smuts, caught behind and Warriors were in early trouble. Their malaise could have deepened when Ngidi appealed for a catch against Colin Ingram, who had yet to score, but umpire Allahudien Paleker turned him down. Ingram only faced another eight deliveries before Ngidi had the last laugh and Titans took the Powerplay honours with Warriors on 44 for 3.
Colin Ackermann and Christiaan Jonker got them back on track with a clinical attack on the Titans change bowlers. They were particularly severe on left-arm wrist spinner Tabraiz Shamsi, whose first over cost 14, but he could have had both their wickets. After Ackermann hit Shamsi over the grass embankment for six, he skied another strike but Siboto put it down and conceded a run. Off the next ball, Jonker tried to flick and was caught by Junior Dala to put Titans back in it.
Ackermann shared in a 30-run fifth-wicket stand with Qaasim Adams, who is on loan from Titans and gave it to his old team with a feisty 17 off 16 balls. Before he could do any more damage, though, Shamsi removed him lbw with the last ball of his spell. The tale twisted even more when Ackermann holed out to Ngidi and all but ended Warriors' challenge.
That would have come as relief to Titans, who should have scored more after their strong start. They put on 35 in the first four overs, which included two overs from Kyle Abbott who was selected ahead of the competition's second-highest wicket-taker Andrew Birch, despite Birch's 5 for 16 against the same opposition at the same ground in the group stage.
Warriors fought back when Basheeru Walters made the first breakthrough and two further blows left Titans 73 for 3 in the 10th over. Despite needing some firepower Titans did not send in their star batsman Farhaan Behardien immediately and tasked Heino Kuhn with partnering Morkel in the middle. Kuhn was run out in the 14th over, which sparked a mini-collapse. They lost three for 21, including Behardien, who was unable to provide a replay of his 14-ball fifty from the weekend, and Morkel, also run-out.
At 126 for 6, with 16 balls remaining, Titans were in danger of finishing well below par but Wiese took them to respectability. He plundered 16 runs in a 19-run final over that took Titans over 150 and, in the end, it proved enough.
Firdose Moonda is ESPNcricinfo's South Africa correspondent