Cape Town - The Cape Cobras sealed their place in the One Day Cup final, securing a three-wicket win over the Titans with 21 balls to spare at Newlands on Sunday.
The defending champions will face the Highveld Lions in the final at the Wanderers on Friday.
Cobras skipper Justin Ontong led the chase with 82 off 81 balls, while Proteas speedster Dale Steyn picked up five wickets as the Cobras continued their winning ways under the guidance of new coach Paul Adams.
Video highlights: Cobras v Titans
Winning the toss and choosing to bowl first, the Cobras were bolstered by the return of Steyn, Rory Kleinveldt and Robin Peterson from international duty.
Proteas Test skipper Graeme Smith was forced to sit out after being injured in training on Friday.
Steyn was in action early, dismissing both Henry Davids and Heino Kuhn in quick succession, leaving the Titans in a spot of bother at 18/2 after 4.2 overs.
Jacques Rudolph, back for the Titans after the Australian tour, stuck around briefly, chipping in with 24 runs before he was run out by Dane Vilas attempting a quick single.
AB de Villiers and Farhaan Berhadien then combined for a 120-run partnership, with the Proteas wicketkeeper-batsman playing a magnificent knock of 107 off 123 before he was run out by Ontong in the 43rd over.
Behardien added 47 before he became Steyn's fourth scalp, with the paceman having no issues adjusting to the shorter format after three Tests Down Under.
The Titans' tail failed to make any impact and stuttered towards the end, finishing on 241/9, while Steyn ended on figures of 5/45.
In reply, the Cobras got off to a shaky start with Andrew Puttick coming down the track and hitting straight to Eden Links at midwicket off Roelof van der Merwe.
Stiaan van Zyl followed soon after and the home side found themselves in a pickle early on.
Richard Levi was sent on his way for 38, becoming Van der Merwe's second wicket, and the Cobras were looking somewhat shaky at 72/3 after 14 overs.
Drama followed with Vilas being given out obstructing the field when David Wiese threw a ball back at him in what was perceived to be an attempt to run him out.
The Cobras wicketkeeper put his bat up and hit the ball and the Titans appealed.
After some deliberation on the field, the decision went upstairs and the third umpire decided to send him on his way.
Yaseen Vallie and Ontong added 109 runs for the fifth wicket before Vallie hit a full toss straight to cover and departed for 60 off 79.
Ontong was leading the charge for his team, however, and hit two consecutive sixes off Davids to help put the Cobras back in control.
Justin Kemp then got a leading edge to short third man and was sent on his way for five, with the Cobras still needing 15 off 25.
With Rory Kleinveldt the new man in, Wiese took the ball, and Kleinveldt finished the job with two fours and a six down to long on to see his side home.
Titans 241-9 (50 overs) (AB de Villiers 107, D. Steyn 5-45) v Cape Cobras 245-7 (46.3 overs) (J. Ontong 82 no, M. Vallie 60, R. Van der Merwe 4-29)
Cobras win by 3 wickets
Cape Cobras: Justin Ontong (captain), Justin Kemp, Rory Kleinveldt, Richard Levi, Johann Louw, Andrew Puttick, Robin Peterson, Dale Steyn, Yaseen Vallie, Stiaan van Zyl, Dane Vilas (wicketkeeper).
Titans: Martin van Jaarsveld (captain), Farhaan Behardien, Henry Davids, AB de Villiers, Heino Kuhn (wicketkeeper), Eden Links, Tumi Masekela, Morne Morkel, Jacques Rudolph, Roelof van der Merwe, David Wiese.