Rogers, who scored only ten runs in his first three innings of the series, made 69 not out, while the more aggressive Warner hit 66 to follow up a century in the first Test and 70 in the first innings of the current match.
Warner was the only batsman to be dismissed, leg before wicket to off-spinner JP Duminy when he went back on his stumps to a ball which skidded through.
Umpire Kumar Dharmasena gave Rogers not out and the slips cordon led by captain Graeme Smith were uncertain and did not seek a review. Replays showed the ball probably clipped the toe end of the bat.
The opening partnership of 126 was easily the best for the first wicket in the series. The previous best by either side was 20 by South Africa in their second innings in Port Elizabeth.
Morne Morkel, who was a constant threat in the first innings was hit for four successive boundaries by Warner soon after lunch, although one was off an edge.