Ajax Cape Town lost ground on league leaders Kaizer Chiefs when they went down 2-1 to Moroka Swallows in their Castle Premiership match at the Rand Stadium on Saturday.
Moroka Swallows started the match the better of the two sides and created more clear-cut chances than the visitors.
Both sides struggled to find their rhythm during the early stages of the match, with Ajax midfielder Brent Carelse looking good early on.
Ajax almost handed the hosts an early lead when Urban Warriors' goalkeeper Moeneeb Josephs raced out to clear the ball, but the Bafana Bafana stopper played the ball straight at Samuel Ngobeni, but the midfielder's long-range effort was way off target, although Josephs looked to have shot covered.
Shaun Permall then raced clear on the left in the 20th minute with Carlo Scott and Kometsi inside the area, but the striker's cross was overhit and the chance went abegging.
Swallows had a golden opportunity to open the scoring in the 27th minute when Denis Lota played Kometsi clear and as the midfielder raced into the area Bageta Dikulu produced a superb tackle to dispossess the Birds player just as he was about to pull the trigger.
However, Swallows did break the deadlock two minutes later when they were awarded a free-kick on the edge of the area following Phiri's foul on Scott, which Josephs could only manage to punch the ball straight at Gary McNab and the defender played the ball back into the area where an unmarked Lota brilliantly controlled the ball before calmly slotting the ball past Josephs to make it 1-0.
The home side should have made it 2-0 five minutes later when Scott received the ball just inside the Ajax area and the striker raced up field with Bradley August and Shane Poggenpoel in hot pursuit and as Josephs raced off his line the former Ajax front man lifted the ball over the visiting keeper, but his effort sailed just over the bar.
Swallows again threatened in the 37th minute when Permall latched onto a long ball, but the striker shot over the bar from the edge of the area.
The Urban Warriors almost drew level a minute before the break when Grant Igesund, who was having a relatively quiet game, headed Carelse's corner just wide of the far post.
The visitors started the second period much better and were almost gifted a goal in the 46th minute when Swallows goalkeeper Greg Etafia missed a back pass and Anele Zibi latched onto the ball, but the Ajax midfielder could only manage to fire across an empty Swallows goal.
However, Ajax made no mistake three minutes later when Paulse was left unmarked on the left and the striker ran onto Phiri's pass to slip the ball past Etafia into the far corner.
Anele Zibi should have put the visitors ahead after 64 minutes when he raced clear, but the former Bush Bucks player blasted his shot high over from close range.
Just as the match seemed destined for a draw, Swallows substitute Pitso Lekone netted six minutes from the end to put the tie beyond doubt after Josephs had failed to collect a corner and despite the Bafana Bafana keeper producing a stunning save to deny Permall from scoring, there was not much he could do to stop Lekone from tapping home the rebound.
The result leaves Ajax seven points off from league leaders Kaizer Chiefs, who could secure the title with a win over Santos on Sunday, while the three points sees Swallows move up to fifth spot.