GALLE: JP Duminy scored his fourth test century and his first in the subcontinent to steer South Africa to a first innings total of 455 for nine wickets declared on the second day of the first test against Sri Lanka on Thursday.

At close, Sri Lanka openers Kaushal Silva (eight) and Upul Tharanga (20) had survived 12 overs to take the hosts to 30 for no loss.

Batting at number eight, Duminy completed his well-composed 100 not out, including 10 fours, with support from the tailenders.

He reached the mark with a single to square leg off Dilruwan Perera, who had earlier dropped him on 82 at mid-off.

Morne Morkel stayed at the crease for 74 balls, scoring a defiant 22, to help Duminy reach his hundred in a ninth-wicket stand of 66 runs.

Perera accounted for Morkel's wicket as the batsman went for an expansive drive and missed the ball altogether, to end with figures of four for 162.

The visitors batted to a plan to occupy the crease for as long as possible and wear out the pitch using up 166.2 overs in their first innings.

An eighth-wicket stand of 75 between Duminy and Vernon Philander frustrated the Sri Lankan bowling attack, which was missing one of their front-line bowlers.

Philander defended for almost two hours, facing 96 balls for 27, before skipper Angelo Mathews provided Sri Lanka with the only wicket of the afternoon session by trapping him leg before.

Scores: South Africa 455-9 dec. (D. Elgar 103, JP Duminy 100 not out, F du Plessis 80, Q de Kock 51; D. Perera 4-162, S. Lakmal 3-75) v Sri Lanka 30-0. Reuters