Brook made 80 off 75 balls and Buttler hit an unbeaten 94 off 82 deliveries.
Brook, out for nought in his first ODI during England’s 27-run defeat at the Mangaung Oval on Friday, changed the tempo of the innings after England were sent in to bat on a pitch which offered early swing and seam movement, losing opening batsmen Jason Roy (9) and Dawid Malan (12) cheaply.
Brook hit seven fours and four sixes, striking the ball powerfully, particularly on the leg side.
Buttler and Moeen Ali (51) shared the biggest stand of the innings, adding 106 for the fifth wicket.
There was a brief lull after Ali’s dismissal but England scored 60 runs off the last four overs.
Sam Curran hit three sixes in scoring 28 off 17 balls as he and Buttler went on an all-out attack. Buttler’s innings included eight fours and three sixes.
The innings lasted more than 40 minutes longer than scheduled, partly because of a lengthy break when wicketkeeper Quinton de Kock was treated for an injury to his right thumb before Heinrich Klaasen took over the gloves.