The victory sees the Free State outfit move up to sixth spot, while the Citizens dropped to fourth following Kaizer Chiefs' win over Mamelodi Sundowns.
Benni McCarthy's charges enjoyed most of the possession in the early stages of the encounter, but they failed to carve out chances.
Celtic created their first chance after 15 minutes, but City goalkeeper Sage Stephens produced a save to deny Ndumiso Mabena.
The visitors continued to threaten as the first half went on, with Mabena and Deon Hotto testing Stephens after the 30-minute mark.
The final stages of the opening half proved to be a quiet affair and the sides went into the break goalless.
The second half started in the same fashion as the first, with neither side creating any clear-cut chances.
However, the Free State outfit took the lead in the 66th minute when Mahlasela fired past Stephens after showing some good skill in the box.
With time running out, McCarthy went for an attacking change as Vincent Kobola was taken off for Lehlohonolo Majoro in the 78th minute.
City threw numbers forward in the hope of bagging an equaliser in the dying stages of the second half.
However, Celtic managed to see out the remaining minutes of the encounter to claim three points.