The Buccaneers will meet Free State Stars in the final, after Ea Lla Koto beat Kaizer Chiefs 4-2 on penalties in the first semifinal.
Wellington Sambu opened the scoring for Phunya Sele Sele in the second minute after they were awarded a corner following a mix-up in the Bucs’ defence between defender Benson Mhlongo and goalkeeper Senzo Meyiwa.
Mhlongo almost leveled matters for Pirates in the fourth minute with a snap-shot from the edge of the area, but Celtic goalkeeper Shuaib Walters produced a good save to tip the former Mamelodi Sundowns defender’s effort around the post.
Pirates equalised in the 16th minute when Thwala rose highest to head home a corner by Bennett Chenene.
Pirates were awarded a penalty three minutes before the break when Chenene was fouled inside the area, and Thwala coolly stepped up to slot home from the spot.
The score remained 2-1 at the break and despite Celtic pushing more men forward in the second stanza, it was largely a dull affair, with neither side seriously threatening the other’s goal.
The final kicks off at 3 pm.