An early Erick Mathoho goal and a Lennox Bacela penalty had given the home side the lead, but Ajax twice came back from behind through goals by Brent Carelse and a Mathoho own-goal.
Celtic opened their account in the 18th minute when, from a corner-kick, the ball fell into the path of Thokozani Mshengu on the right, but his shot rebounded off the chest of Matthew Booth, and Mathoho buried the ball beyond a crowded Ajax goal-line.
But the Urban Warriors found the equaliser in the 34th minute. A shot from Shabalala on the right side of the box was saved by Thabang Stemmer, but the ball rebounded off Mathoho and straight into the net to make it 1-1.
Four minutes later Celtic reclaimed the lead when the referee pointed to the spot, after Celtic's Letladi Madubanya was hacked down in the penalty box.
Bacela stepped up and fired the ball low and hard to the right beyond the reach of Sander Westerfeld to make it 2-1 after 37 minutes.
Ajax were clearly not going down without a fight. In the 57th minute, after some sterling work on the left wing by Ajax Tafadzwa Ruskie, Carelse scored to make it 2-2.
But the vocal home crowd were cheering Celtic on, and they were not disappointed when a stunning left-footed curling free-kick by Mulenga from 25 yards beat Westerveld, who crashed into the post in the attempt to save.
Celtic were high on confidence and sealed the match in the 83rd minute when Mulenga passed to an unmarked Mongala, who buried the ball home from six yards out to make it 4-2.