As early as the second minute, Rodney Ramagelala came close to grabbing the lead for Rise and Shine with a powerful strike from just outside the box that was saved by Bucs goalkeeper Jackson Mabokgwane.
Vusimuzi Mngomezulu had a glorious opportunity to give City the lead in the 14th minute after finding himself with a lot of space at the back post, but he fluffed his chance.
The pace of the game struggled to pick up after 20 minutes, with both sides keeping possession and only to give it away in midfield.
Ramagalela had another chance for Jozef Vukusic’s men on the half-hour mark with a header inside the box but his effort was swallowed by Mabokgwane.
Justin Shonga should have done better for the visitors in the 34th minute after finding space to strike at goal, although he was unable to find the target.
The Soweto giants had momentum towards the end of the half, but they lacked penetration in the last third as the first stanza ended goalless.
Mngomezulu came close to breaking the deadlock for Rise and Shine three minutes into the second stanza with a curling strike from the edge of the box that was brilliantly saved by Mabokgwane.
Ayanda Nkili got a goal back for the hosts in the last minute of regulation time with a powerful header that came off the underside of the crossbar and just crossed the line, but that proved to be nothing more than a consolation as Pirates held on for the win.