It was a thrilling contest which saw the hosts putting the Bucs defence under serious pressure, but only managing to score once,
Nathan Paulse pulling a goal back early in the second half after Ndoro had struck twice in two minutes (36th, 38) in the first half.
Bucs coach Muhsin Ertugral, who was up against his former employers, had to endure an anxious final 20 minutes as the home side ratcheted up the pressure, but the Soweto side were able to hold on for their second league win of the season.
Pirates looked threatening early on but failed to test home keeper Brandon Petersen. But once Ajax got going, they were to dominate what turned out to be a thrilling first half.
The first few chances fell to Paulse but the veteran striker had a 14th-minute header blocked before ballooning the ball over the bar from a good position 18-yards out.
Only a goal-line clearance by Pirates captain Oupa Manyisa prevented Roscoe Pietersen from hammering in a volley while there were also chances for Abel Mabaso and Toriq Losper as the hosts continued to asks questions of the Bucs defence.
It was therefore against the run of play when Ndoro, who began the season with a hat-trick against Arrows, put the Buccaneers ahead on 35 minutes. It was a well-taken goal though by the red-hot Zimbabwean who received the ball in the box before riding two challenges and then slotting home.
It took only two minutes for Ndoro’s next goal to arrive. Some sloppy play in the Ajax defence saw Manyisa stealing possession and releasing Ndoro, who shrugged off Pietersen’s challenge before beating keeper Petersen with a sublime effort into the bottom corner.
But the Urban Warriors were back in with a chance seven minutes after the restart when Paulse snuck in the middle of the Pirates defence before deftly heading home an in-swinging cross.
While the visiting team still looked dangerous when going forward, it was the Cape men who were to carve out chances. But they could not find the net as Pietersen headed straight at Mhlongo before Mark Mayambela – who looked purposeful after coming off the bench to make his debut, dragged a 72nd-minute effort just wide after a quick one-two.
It was all hands on deck for the Sea Robbers defence for the closing minutes of the game, Ajax continuing to create havoc as Mayambela missed the top corner by a few inches before Bantu Mzwakali was denied by a brilliant save by Mhlongo.
But in the end, Urban Warriors boss Roger De Sa was left a frustrated man as his side failed to take anything from the game against his former club.