Cobras v Titans, Momentum One Day Cup semi, Cape Town December 9, 2012

Cobras in final despite de Villiers ton

Cobras 245 for 7 (Ontong 82*, van der Merwe 4-29) beat Titans 241 for 9 (De Villiers 107, Steyn 5-45) by three wickets

Dale Steyn's five-wicket haul for the Cobras helped offset AB de Villiers' century for the Titans as national heavyweights played starring roles in the one-day cup playoff. The Cobras' three-wicket victory earned them the right to play the table-topping Lions in Friday's final at the Wanderers.

They had their bowlers to thank for restricting the Titans to a below-par score on a slow Newlands pitch and Justin Ontong and Yaseen Vallie's century stand for anchoring the chase. Despite, eventful dismissals - like Dane Vilas' for obstructing the field - the Cobras won with 21 balls to spare.

Steyn was not even due to play this match after he signed a one-game deal with the Brisbane Heat for Australia's Big Bash League. CSA withdrew his NOC at the last minute and even though Steyn said he was disappointed not to be able to participate in the BBL, he did not show it. Instead, he struck telling blows for the Cobras against his former franchise, with two wickets in his first spell and three in one over in his last.

The Titans were without their BBL-contracted player, Faf du Plessis, who returned from Australia on Saturday but was left out of the XI. They did have Morne Morkel at their disposal, but his efforts with the ball were not enough, despite an early breakthrough.

After Eden Links caught Andrew Puttick spectacularly at short midwicket off Roelof van der Merwe, Morkel had Stiaan van Zyl caught at third man. Richard Levi got a top-edge a heave over long-off to leave the Cobras 72 for 3 in the 14th over.

Vilas should have been out caught off the glove when he was on 23 but stood his ground and the umpire did not raise the finger. In the next over, Vilas danced out of his crease and drove the ball back to David Wiese. Before Vilas had made his ground, Wiese threw the ball back and Vilas got into position to block it with his bat.

The Titans appealed for obstruction and, after a lengthy delay, Vilas was given out. Graeme Smith, the national captain who plays for the Cobras but missed the match through injury, called the dismissal a "disgraceful decision setting the wrong precedent," on Twitter.

Ontong and Vallie ensured Vilas' departure did not affect the Cobras too badly. They played aggressively and targeted relative newcomer Tumi Masekela. Vallie became van der Merwe's third victim and Robin Peterson his fourth but Ontong batted to the end, turning it on against Henry Davids* when he hit the medium-pacer for back-to-back sixes over square leg. But, it was Rory Kleinveldt who blasted the winning runs in boundaries off Wiese, who he hit for two fours and a six.

Earlier, Steyn found swing on a warm Cape Town day and dismissed the Titans openers cheaply. When de Villiers walked in, his side was in trouble on 18 for 2 in the fifth over. He joined fellow international Jacques Rudolph and the two did a good repair job to add 49 runs for the third-wicket before Rudolph was run-out.

The Titans then had another wobble. When Martin van Jaarsveld was caught behind off Rory Kleinveldt they were 85 for 4 but with de Villiers still there to build the second recovery. De Villiers and Farhaan Behardien rotated the strike well, with de Villiers finding boundaries off Johann Louw.

Their 120-run fifth wicket stand gave the Titans a launch pad but the rocket did not take off. De Villiers was run out by a direct hit from Ontong at point and the Titans stalled. Steyn was brought back in the 47th over and pegged them back further.

He had Wiese caught behind off the first ball and Behardien deceived by a change of pace off the fourth. But his marquee wicket was bowling his South Africa team-mate Morkel, who did not get forward to a delivery that uprooted off stump.

With their lower-order in tatters, the Titans stuttered to 241 for 9. It was a score that did not look enough and in the end, proved not to be.

*11.58 GMT, December 11, 2012: Corrected bowler from Eden Links to Henry Davids

Firdose Moonda is ESPNcricinfo's South Africa correspondent