Du Plessis’ steady 105 was complemented by Miller’s unbeaten 117 from 98 balls, which saw South Africa post 307 for six on a dry surface that took turn from early in the match.
“It’s hard to single out which had a better knock, because they were both match-winning innings,” de Villiers said in a television interview.
“I thought it was a 10 out of 10 batting performance.”
In reply, Sri Lanka was bowled out for 186 inside 38 overs, as left-arm seamer Wayne Parnell struck twice up front and spinners Imran Tahir and JP Duminy also took two wickets apiece.
The result gave South Africa its 11th straight win on home soil, as well as a 2-0 lead in the five-match series.
It did find itself under pressure early on when it was put in to bat and slumped to 108 for four, but Du Plessis and Miller added 117 for the fifth wicket at a good rate.
Du Plessis was fortunate to be dropped on 63 at slip off the bowling of Lakshan Sandakan early in the partnership, but made the most of that break as he brought up his seventh ODI century.
The right-hander fell with eight overs remaining as he attempted to clear long-on, but Miller was dropped the very next ball and cashed in as he added a further 50 runs to his score from just 27 balls.
The left-hander went to his fourth one-day century at the start of the final over, and then hit two more sixes to finish with six maximums from the innings.
Although Sri Lanka started brightly in reply to South Africa’s imposing total, with Niroshan Dickwella (25) and Upul Tharanga (26) taking the attack to the hosts, Parnell dismissed both openers in the space of four deliveries.
Kusal Mendis (20) and Dinesh Chandimal (36) also offered hope, but were equally responsible for throwing away promising starts.
Once they were dismissed, Sri Lanka’s hopes evaporated and Duminy and Tahir ran through the tail. (Courtesy Associated Press)