The win moves Pirates above Arrows and into third, four points behind League leaders Ajax Cape Town, who lost 2-0 to Maritzburg United earlier in the day.
A disputed penalty from Lucas Thwala was enough to claim all three points for The Buccaneers, but Abafana Bes’thende will rue a late penalty miss from Musa Bilankulu that could have earned them a valuable point.
Lebohang Mothibantwa had the first real shot in anger in the 12th minute, but his low drive from 30 yards went wide.
Katlego Mashego went a lot closer from a similar distance, but Arrows goalkeeper Helton da Rocha managed to palm his shot onto the post and the visitors cleared.
Arrows’ only real effort of the first half saw Richard Henyekane fire over from just outside the penalty area.
Pirates were then awarded what looked like a soft penalty four minutes after halftime as referee Jerome Damon adjudged Kagiso Senamela to have fouled Katlego Mashego in the area, but the striker went down very easily under what minimal contact there may have been.
Thwala made no mistake with the spot-kick however, blasting the ball past Da Rocha to score his sixth goal of the season.
Substitute Josephy Kamwendo went close on the hour-mark with a stinging drive that had the beating of Da Rocha, but also flew wide of his left-hand post.
Another substitute, Francis Kombe, went close with a long-range effort at the other end, but it was a sign that the visitors were having to resort to speculative efforts as the excellent Pirates kept them out.
Damon evened up the penalty count on 80 minutes, however, when he awarded Arrows a spot-kick after Pirates goalkeeper Moeneeb Josephs had fouled Henyekane.
This award looked more clear-cut, but Bilankulu fired his penalty high over the crossbar to waste the chance of the equaliser.