Granwald Scott scored the opener just before half-time.
Concerns over the state of the Free State Stadium pitch circulated before the game, as a rugby match was held there the night before, but nonetheless the Urban Warriors were determined to continue the form from their 4-1 win over Platinum Stars.
And they got off to a great start when Khama Billiat came close to scoring in the 10th minute. The Zimbabwean fired in a low shot from just outside the box after he met a headed ball from Koen van de Laak, following an excellent cross by Paul Rusike.
A minute later, Letladi Madubanya became the first player to be shown yellow for a tackle on Van de Laak, before Aiden Jenniker limped off on 26 minutes, to be replaced by Thato Mokeke.
It took Celtic half an hour to get into the game, when Ruzaigh Gamildien hit a low shot at goal, but Sean Roberts was equal to the task.
Ajax's efforts were eventually rewarded when Scott hit an unstoppable volley from outside the box into the net, leaving Patrick Tignyemb helpless.
Manzini came on in place of Mduduzi Nyanda at the start of the second half, and Celtic came out revived.
The home side equalised soon after the restart. Roberts rushed off his line to gather a ball, but the state of the field caused him to slip, and the ball hit the crossbar, allowing Bacela to head home easily from a metre out.
Roberts made amends for his earlier error when he made a great save, pulling the ball out from under the bar.
But the result turned in favour of Celtic when Manzini sliced the ball through Roberts' legs 15 minutes from time.
Billiat went to ground 10 minutes later, but Ajax's penalty appeals were waved away by the referee and it was the Phunya Sele Sele who celebrated the three points.