The first half was a dour affair with neither side enjoying a clear-cut goal-scoring opportunity in this period.
The home side started the game the stronger team, but despite enjoying a major share of the possession and a number of corners, their best opportunity was confined to a deflected 18th minute free kick by Kagiso Dikgacoi, which went a foot wide of the upright.
The Johannesburg side then started to come back into the game, but also lacked a cutting edge up front and their only chance came the way of Alton Meiring, whose speculative volley from outside the box flew high over the cross-bar.
Abafana Bes'Thende winger Maurizio Pequenino had the best chance of the half in the 40th minute, but his angled shot from close range was well saved by Birds’ keeper Greg Etafia.
The second half started brightly, with Songwe Chakwe coming close for the visitors when he burst through the Arrows defence.
Shortly afterwards Etafia again did well to keep the score level, pulling off excellent saves from Pequenino and then Papi Zwothane.
With just under 20 minutes to go Arrows were reduced to 10 men after Dikgacoi was sent off after being on the wrong end of two cautionable offences.
But Swallows failed to take advantage of the fact that they were only playing against 10 men and to make matters worse conceded what seemed to a somewhat soft penalty when Ramalhwe Mphahlele was adjudged to have fouled Thokazani Mshengu in the box.
Vusimuz Vilakazi made no mistake from the spot in the 91st minute, sending Etafia the wrong way and earning all three points for the KZN side.