Tahir, playing his final ODI in South Africa, scalped two wickets while Rabada got three wickets
With momentum firmly on their side, South Africa will use this match to finalise their playing XI ahead of the World Cup.
Udana's efforts have given Sri Lanka a chance to make a comeback in the fourth ODI.
Under Faf du Plessis, South Africa will want to continue with their winning ways to heal the wounds that Test series had inflicted on them.
The Faf du Plessis-led South African side took 2-0 lead in the five-match ODI series.
The task however, will not be easy. The Lankans have struggled with their performances in recent times.
South Africa won the first match in the five-game series by eight wickets.
With a win in at the Wanderers, South Africa took 1-0 lead in five-match ODI series.
Tahir, who turns 40 later this month, was not included among Cricket South Africa's contracted players, announced last week.
Rixon reckons that the 24-year-old Mendis has the talent and with the right grooming can be a standout player for Sri Lanka.