The goal ended Bloemfontein Celtic’s 14 game unbeaten run in the League.
Both sides struggled to find a decent pass in the final third of the field and their shots were poor.
The game did start quite brightly, however, as Celtic’s Thokozani Mshengu let rip from about 25-yards out, but his effort sailed wide of the target.
Three minutes later and the Birds were on the attack. Cheick Cisse rose highest to meet a cross, but his header from 12 yards out was a poor one and comfortably saved by Patrick Tignyemb.
Despite the game lacking much goalmouth action, there was plenty of tough tackling going on in the midfield.
Swallows’ Giorgi Nergadze, unfortunately, paid for the toughness of the game when he was replaced in the 27th minute by Ashraf Hendricks due to an injury.
The final attempt on goal in the first half came in the 35th minute and was another long-range shot from Machapa, but this time he forced Tignyemb into a fine save diving full stretch to his left to make the fingertip save.
The second half was much the same, until Luyanda Bacela brought the game to life with a powerful 12-yard header in the 65th minute, but Greg Etafia produced a wonderful save to deny the Celtic man.
Unfortunately, though, for Celtic their keeper Tignyemb could not produce the same heroics four minutes later when Siyabonga Nomvete latched onto the ball after a goalmouth scramble and fired his side in front from 10 yards out to make it 1-0.
Celtic quickly tried to hit back and they were on the attack until the end of the match. The closest they came to finding an equaliser came in the 76th minute when a 10-yard header by Thabo Nthethe went centimetres wide of the target.