Celtic started the stronger of the two sides, but had to wait until the 30th minute for their first real chance – Danny Venter struck a thunderous shot with his left foot which nearly beat Jackson Mabokgwane in the goals.
A minute later Letladi Madubanya should have opened the scoring for Celtic when he found himself free from six yards out, but saw his weak header from a Thokozani Mshengu cross saved.
Six minutes before half-time, Stars had a chance to make it 1-0 when Elias Ngwepe sent in a beautiful cross from the left, but Mduduzi Nyanda send his header straight at goalkeeper Patrick Tignyemb.
Fifteen minutes after the restart, Stars took the lead. Thuso Phala took on and beat a few players in the box and whipped in a low cross which was slotted home by Mkhabela.
The goal proved to be consequential for Celtic, as their keeper Tignyemb had to be rushed to hospital after suffering a head injury from the resultant goal scramble.
Celtic threw wave after wave of attack at Stars, but their forwards did not get any clear-cut opportunities to equalise.
The win is the first for Stars since October.