AC Leopards beat Zamalek in the other Group A match, 1-0, meaning Bucs go to the top of Group A on four points (+3 goal difference).
Leopards have four points too, with +1 goal difference, while Zamalek have one point (-1 goal difference) and Al Ahly one point (-3 goal difference).
After some good build-up play early on, Al Ahly came close when Shehab Ahmed found himself in space, but he hit his shot just wide.
Pirates opened the scoring against the run of play, after some fantastic passing between Thandani Ntshumayelo and Collins Mbesuma resulted in Ntshumayelo finishing clinically from 14 metres out.
The visitors sat back a little after the opener, and were lucky not to concede on 17 minutes, when Saad Samir had a shot on target after a scramble resulting from a free-kick, but Lucky Lekgwathi cleared the ball off the goal line.
On the half-hour mark Mbesuma came agonisingly close with a free-kick, and a few minutes later Andile Jali brought down Ahmed Abdul Zaher in the box and Ahly were awarded a penalty.
However, the Egyptian giants were denied an equaliser by Senzo Meyiwa, who made a brilliant diving save to deny Walid Soliman from the spot.
Al Ahly were then reduced to 10 men when Ahmed Abdul Zaher was shown a second yellow just before half-time.
Pirates got their second and third goals in quick succession. First, Daine Klate was fouled in the box by Ahmed Fathi, and Jali coolly converted the penalty.
Three minutes later Jali turned provider, flicking the ball on for Sifiso Myeni to latch onto, round the keeper and toe-poke home.
Lennox Bacela almost added a fourth on 78 minutes, but his shot hit the crossbar.