© Getty Images
Bergessio had two further efforts saved inside the opening 15 minutes, while Cristiano Biraghi also came close to extending the away side's lead.
Conti played the ball back in a couple of minutes later, setting Victor Ibarbo up for the equaliser.
Cagliari had a chance to take the lead just before half time when Nicola Legrottaglie was sent off for a challenge on Ibarbo, giving the hosts a penalty, but Frison made the save.
The hosts attacked early in the second half as they looked to make their one-man advantage over the visitors count, but Catania defended well, keeping numbers behind the ball to keep themselves level for much of the half.
However, Mauricio Pinilla picked up the ball inside the final third in the 84th minute, playing his way into the box before his powerful finish handed the hosts the win.
Pinilla saw two further attempts blocked and another saved before the referee blew for full time.