Tlou Segolela opened the scoring for the Buccaneers before Thulasizwe Mbuyane equalised for Ea Lla Koto, before Mushangazhike netted twice to hand Pirates the points.
Despite the result, Pirates did not have it all their own way, with Stars producing a good display, but their poor finishing cost them though.
The visitors made their intentions clear from the offset and deservedly went ahead in the fourth minute when Segolela scored a superb goal following a superb run by the winger before playing a one-two with Rudzani Ramudzuli, to fire home from inside the area.
Stars almost drew level five minutes later, but Diyo Sibisi’s header from a corner flew inches wide of the goal.
Sibisi threatened again in the 11th minute when he shot straight at Pirates goalkeeper Senzo Meyiwa from just inside the area.
However, the hosts were not to be denied and they drew level in the 17th minute when Mbuyane slotted home with a low shot from inside the area after receiving a good pass by Sibisi.
Mushangazhike restored Pirates’ lead in the 38th minute when he flicked home a scuffed shot by Ramudzuli.
The score remain 2-1 at halftime, but Pirates wasted no time in extending their lead in the second half, with Mushangazhike completing his brace just five minutes after the restart when he chested home after Ramudzuli’s deflected shot looped over keeper Kennedy Mweene.
Free State Stars fought back bravely, with former Pirates striker Jimmy Kauleza hitting the crossbar with a superb free-kick just outside the area.
Mushangazhike almost completed a hat-trick in the 54th minute when he received a low cross from Segolela, but the striker’s shot was cleared off the line.
The hosts pushed more men forward in a bid to reduce the deficit, but they were unable to break down the Pirates defence.
The Buccaneers host AmaZulu in the final game of the season, while Stars travel to Pretoria where they will face Mamelodi Sundowns.