George Maluleka and Gustavo Paez grabbed goals in either half, with Celtic drawing a blank against Chiefs for a 12th game in a row.
Chiefs extend their unbeaten run to 13 games and are now two points behind leaders Bidvest Wits, though they have played two games more.
The game took a while to get going, but it was Chiefs who netted first as Joseph Molangoane's fine ball into the box picked out Maluleka and the midfielder finished low into the net.
Willard Katsande and Alfred Ndengane were involved in a scuffle that saw a yellow card for the Chiefs man, who is now one shy of a suspension.
Siphiwe Tshabalala had an excellent chance to double the advantage when he was found by Bernard Parker's excellent pass, but the veteran winger's touch was heavy and Celtic keeper Patrick Tignyemb was able to gather.
It took 37 minutes for Celtic to have their first effort on goal as Lyle Lakay flashed a shot just wide of Itumeleng Khune's post with the Chiefs keeper battling to get to the ball.
Katsande had a chance to double the Chiefs lead seven minutes into the second half when he headed towards goal, but Tignyemb beat the ball to safety.
Chiefs did get their second goal when super-sub Paez found himself one-on-one with Tignyemb and supplied a cool finish that went in off the post.
Next up for Chiefs is a home clash with Chippa United on Saturday, for which Parker will be suspended. Celtic's next game will be their Nedbank Cup quarterfinal against Orlando Pirates, the date for which is yet to be announced.