The Buccaneers made three changes from their 2-2 draw with FC Platinum the last time out, as Thamsanqa Gabuza got a rare start while Innocent Maela and Ben Motshwari returned to the starting side.
Horoya almost drew first blood in the first minute of the match after Ocansey Mandela's curling shot from outside the box clipped the bottom post with Pirates goalkeeper Wayne Sandilands beaten.
Milutin Sredojevic was forced to make an early substitution as Xolani Mlambo went down with injury in the 23rd minute and was replaced by Augustine Mulenga.
Eight minutes later, Luvuyo Memela had a glorious chance to break the deadlock after receiving a cut-back from Kudakwashe Mahachi, but he struck his effort over the bar as frustration began to build.
Abdoulaye Camara finally found the breakthrough for Horoya 11 minutes after the break with a strike from outside the box that beat Sandilands at his near post, 1-0.
The Buccaneers were looking for a change in fortunes upfront on the hour-mark as Justin Shonga came on for Mahachi.
However, it was Horoya who got the next goal as Boniface Haba doubled the lead for the hosts in the 73rd minute with a low strike that Sandilands was unable to keep out.
Horoya were managing the game in the closing stages, not allowing Pirates spaces in the last third but the visitors pulled a goal back in stoppage time. Shonga rounded goalkeeper Khadim Ndiaye to score into a gaping net.
It was too little too late as Horoya hung for the win to qualify for the quarter-finals, while Sredojevic's men finished third with six points.
Teams:
Horoya: N'Diaye, Nikiema, Camara, Assoko, Yakubu, Bolaji, Asante, Camara, Ocansey, Haba, Djibo Mohamed.
Pirates: Sandilands, Jele, Ndengane, Maela, Motshwari, Nyatama, Mlambo, Mahachi, Lorch, Memela, Gabuza.
Subs: Mpontshane, Mako, Munetsi, Mulenga, Mabaso, Shonga, Makola.