South Africa's Quinton de Kock completed his third hundred in just five World Cup innings when he reached three figures against Bangladesh in Mumbai on Tuesday.
The 30-year-old left-handed opener went to his latest century in 101 balls, including six fours and four sixes.
South Africa had briefly been in trouble at 36-2 after winning the toss at the Wankhede Stadium.
But De Kock's third-wicket stand of 131 with stand-in captain Aiden Markram (60) turned the tide in favour of the Proteas.
De Kock's latest century followed scores of 100 and 109 during in-form South Africa's opening two matches against Sri Lanka and Australia respectively.
It was also his 20th hundred in 150 one-day internationals.