Celtic made a bright start but lacked the cutting edge in front of goal. The capabilities of Xolani Ngcobo were called into question by Sipho Jembula on a side-footed half-volley after five minutes.
Debutant Kabelo Dambe made his first save in the club’s colours from a dangerous looking free-kick a minute later.
An in-swinging free-kick from the left by Given Mashikinya found the side-netting later on. Ngcobo denied the home side once again with an outstretched leg that prevented Mashikinya through on goal.
There was nothing he could do though from stopping Mpho Maruping to poke home the opener from a goal-mouth scramble minutes to halftime.
Kulegani Madondo looked to secure the equaliser with a shot from outside the box but it went wide of goal.
Ronald Pfumbidzai targeted a second for the hosts, but shot embarrassingly wide of target moments later.
Richards got another shift at goal after breaking on the counter but Dambe quickly prevented the purported attempt.
Ellesiah Mensah made way for Khayilihle Shozi as their first change from the bench, with Celtic bringing in Jacky Motshegwa for a weary-looking Jembula.
Celtic found a second with a stunning strike from substitute Neo Maema five minutes to the end that gave Ngcobo no chance whatsoever.
After searching for a goal, Kabelo Dlamini finally made his presence felt with a neat left-footed finish to round off a rather comfortable victory for them despite the consolation strike from Thabiso Nkoana late on in added time.
Celtic: Dambe, Molekwane, Ndengane, Lubisi, Pfumbidzai, Jembula (Motshegwa 72’), Mashikinya (Phalane 78’), Maruping, Dlamini, Abondo (Maema 59’), Letsoalo.
Subs: Chaine, Motshegwa, Phalane, Nyundu, Mabasa, Rikhotso, Maema.
Richards Bay: Ngcobo, Mtebule, Ralebakeng, Ngcobo N, Mthethwa, Abubakar, Shozi (Mensah 70’), Madondo, Roelf, Ntuli (Nkoana 80’), Muishond (Cele 74’).
Subs: Mthembu, Mensah, Shange, Jampies, Cele, Mcineka, Nkoana.