Sent into bat by India skipper Virat Kohli, South Africa were bowled out for 191 in 44.3 overs at the Oval.
In reply, the defending champions chased down the target with 12 overs to spare, reaching 193 for two in 38 overs.
Brief scores:
South Africa: 191 all out in 44.3 overs (Quinton de Kock 53; Jasprit Bumrah 2/28, Bhuvneshwar Kumar 2/23)
India: 193/2 in 38 overs (Shikhar Dhawan 78, Virat Kohli 76 not out).