Steyn and Gibbs set up six-wicket win
South Africa 113 for 4 (Gibbs 48) beat Sri Lanka 109 for 9 (Botha 2-9, Kallis 2-12)
Scorecard and ball-by-ball details
South Africa made heavy weather of chasing down Sri Lanka's disappointing total of 109 for 9 in their final warm-up match at Lord's ahead of next week's ICC World Twenty20, but they eventually eased home with five balls and six wickets to spare, thanks largely to a third-wicket stand of 70 between Herschelle Gibbs and AB de Villiers.
Having been drawn in the toughest group, alongside West Indies and Australia (whom they face in their opening fixture at Trent Bridge on Monday), Sri Lanka will need to raise their game considerably if they hope to progress in the competition. After batting first they were reduced to 44 for 7 at the halfway mark of their innings, as first the pace of Dale Steyn and then the variations of Jacques Kallis and Johan Botha proved too much for their disorientated batsmen.
Then in reply, despite being given a flying start by Lasith Malinga and Nuwan Kulasekera, who claimed the big wickets of Graeme Smith and Kallis in the first nine deliveries of South Africa's innings, Sri Lanka let the game slip away from them with a spate of dropped catches. Gibbs was missed twice by Farvez Maharoof in the space of his first ten balls - the first a fizzer at square leg, the second a regulation spoon over extra cover - and then again on 15, when Tillakaratne Dilshan at short cover couldn't cling onto an inside-out drive.
They were mistakes that Sri Lanka could ill afford, given how poorly they had batted earlier in the day, and though both de Villiers and Gibbs fell with the victory in sight - the latter bowled by the returning Malinga for 48 from 53 - the remaining 10 runs were easily hunted down by JP Duminy and Mark Boucher.
"It was a different sort of surface from Trent Bridge, and we were facing different bowlers," said Gibbs after the match. "It was a little bit slower, and it held up back of a length, so we had to generate our own pace. Coming from the wickets in South Africa, you can't just come in and time every ball perfectly. But that's what practice is for. We needed one or two partnerships, but luckily someone batted through most of the innings to get us home."
The main man of South Africa's performance, however, was Steyn, whose aggression pushed the Sri Lankans onto the defensive from the first over. Though his third delivery of the match was clipped majestically over midwicket for six by Dilshan, Steyn responded with a slower ball from his very next delivery, which was lobbed gently to Gibbs at short cover.
Sanath Jayasuriya, his form on the wane after a lacklustre IPL, then fell across his stumps to be trapped lbw for 1 in Steyn's second over, and four balls later, Mubarak foolishly took on Gibbs in the covers, and was run out by a pinpoint flick at the non-striker's end.
At 16 for 3 in the third over, Sri Lanka's innings was already in a tangle, and though Sangakkara cracked three fours in six balls to apply a touch of momentum, he could do nothing about the seepage of wickets at the other end. Mahela Jayawardene missed with a reverse sweep and had his off stump flattened by Botha, before Boucher pulled off a screaming one-handed catch in front of first slip to remove Chamara Silva in Kallis' second over.
Sangakkara was the next to join the procession, as Botha came round the wicket to pin him plumb in front of the stumps for 17, before Indika de Saram plopped a simple catch to Smith at mid-off. At the halfway point of the innings, Sri Lanka were 44 for 7, and the game was already over.
Angelo Mathews and Maharoof loitered in a stand of 31 from 35 balls for the eighth wicket to give Sri Lanka something of a total. But for their butterfingers - and had Muttiah Muralitharan also been playing - they might have had a chance of defending the indefensible.
Andrew Miller is UK editor of Cricinfo