The 30-year-old De Kock reached his 19th ODI hundred off 90 balls with eight fours and five sixes having also made a century in South Africa's opening win over Sri Lanka.
De Kock, who will retire from international cricket at the end of the tournament, was batting in familiar surroundings at the Ekana Stadium where he plays in the IPL for the Lucknow Super Giants.
He was eventually dismissed for 109, bowled by off-spinner Glenn Maxwell while trying to reverse sweep in the 35th over.
Aiden Markram takes charge
South Africa were on 197-3 at the time before Aiden Markram then took up the charge.
Having made the fastest World Cup century off just 49 balls in the win over Sri Lanka, Markram raced to 56, making the most of being dropped by Australia skipper Pat Cummins when he had made just a single.
It was a miserable day in the field for Australia as South Africa captain Temba Bavuma was also dropped twice on 19 and 32.
Mitchell Marsh dropped Virat Kohli in their opening game when the Indian star was on 12. Kohli went on to make a match-winning 85.
Bavuma's luck ran out on 35 when he was caught at midwicket by David Warner off Maxwell.
With De Kock, the skipper put on 108 for the first wicket.
Once Markram was dismissed by Cummins, the Proteas saw Marco Jansen (26) and David Miller (17) take them past the 300 mark.
Both Miller and Jansen fell in the final over, a double-wicket maiden bowled by Mitchell Starc.
Brief scores: South Africa 311-7 (Quinton de Kock 109, Aiden Markram 56) v Australia