Aleni Lebyane and Ayanda Gcaba scored for Free State Stars, while Willard Katsande got the goal for Ajax.
Both teams looked hesitant on the ball in the opening 45 minutes and squandered good field position with poor passing in the final third.
Ajax had more of the possession but struggled to create decent opportunities in front of goal.
In the eighth minute, Mpho Makola let rip with shot from about 20 yards out, but Hans Vonk dove at full stretch to his right to make the save.
Vonk only managed to palm the ball into the path of Boitumelo Sekgobela, but was quickly back on his feet to make another great save from six yards out.
The Urban Warriors finally mounted their first real attack in the 32nd minute, when Willard Katsande tried his luck from 25 yards with a stinging drive that burned the hands of Kennedy Mweene, who made a good save.
Two minutes later Brent Carelse fired a low powerful shot from the edge of the box that just skimmed the wrong side of the upright.
In the 38th minute only the brilliance of Mweene kept the scores level when Katsande broke through on goal for Ajax, but the keeper was quickly out of his goal to smother the attacker and snatch the ball from his feet.
In the second half Free State started to dictate terms on the pitch, and went ahead in the 53rd minute.
Lebyane latched onto a good through-ball and, with only the keeper to beat, he showed good composure to slip the ball past Vonk with the outside of his boot, to make it 1-0.
After the goal Ajax upped their intensity and almost found the equaliser two minutes later, but again Mweene was there to thwart the visitors with another fine save, diving low to his right to deny Katsande from 18 yards.
Ajax went 2-0 down in the 58th minute when they failed to clear a corner-kick.
The corner was whipped in from the left and found Gcaba unmarked at the back post, and he fired a low shot past Vonk at his near post.
In the 78th minute Katsande pulled a goal back for Ajax. With a piece of individual brilliance he beat three players before toe-poking the ball past Mweene from 16-yards out.
Katsande injured himself in the process, pulling up with what looked like a hamstring injury, and was replaced by Nhlanhla Vilakazi.
But his effort was too little to late, and Ajax bowed out of the Nedbank Cup.