Faf du Plessis warned South Africa must raise their game if they are to avoid a first home Test series defeat to Sri Lanka.

Kusal Perera was the hero with a magnificent unbeaten 153 to seal a sensational one-wicket victory in the first Test at Kingsmead.

Du Plessis said the Proteas were taken by surprise in Durban, having gone into the match as strong favourites given the on and off-field issues Sri Lanka have had to contend with.

South Africa have won five and drawn one of their last six Tests in Port Elizabeth, but captain Du Plessis knows they will have to step it up to avoid making unwanted history.

"We're very proud about our record - we have made sure that we've made our home a fortress," said the skipper.

"For the last two years or so, I don't think we played a bad game against Sri Lanka at home. But we need to be better to beat them."

The batsman added: "They surprised us with the way they played in Durban, but here there will be bit of sideways movement.

"In Durban, there's not a lot of that. Kingsmead has always [offered] a five-wicket haul for spinners. Here, although the spinner plays a role, I don't think that much help will be there."

All-rounder Wiaan Mulder could make his South Africa Test debut in the absence of Vernon Philander (hamstring).