Catania had an earlier goal wrongly disallowed for a phantom offside decision. Juventus escape Sicily by the skin of their teeth and move onto eight wins out of nine games.
Both sides plumped for a 3-5-2 formation. Catania gave Alexis Rolin a debut in defence, while Paul Pogba and Nicklas Bendtner were given their first Juventus starts. Gianluigi Buffon was playing in his 500th competitive game between the sticks.
Vidal tested Mariano Andujar in the opening minutes. The Catania shot stopper couldn't hold the shot, but the danger was cleared. On seven minutes, Vidal was at it again. He released Stephan Lichtsteiner out wide, who squared for Bendtner, but Andujar cut out a certain goal as he smothered the cross.
Andrea Pirlo sprayed a long ball to Bendtner, whose decision to let the ball bounce led to it rolling out. Moments later, a Pirlo free-kick rebounded out to Kwadwo Asamoah who let rip with a screamer which went over.
Francesco Lodi fired wide for Catania on 20 minutes. At the other end, Bendtner nodded a weak header into Andujar's gloves.
Giovanni Marchese gave Buffon a scare when he flashed a ball across goal. No-one was there to get on the end of it.
Controversy struck on 25 minutes when Catania had a perfectly good goal wrongly disallowed. Marchese's cross was touched on by the head of Nicolas Spolli. Buffon scrambled backwards as the ball rebounded off the post and Bergessio tapped in. The Juventus players surrounded the referee, who after consulting with the fourth official chalked the goal off. Furious Catania President Antonino Pulvirenti was sent off from the bench for dissent.
Bendtner continued to toil for the visitors. He wandered offside as he toe poked straight at Andujar, then sent a diving header over from Asamoah's cross. Ten minutes before the interval, Andujar tipped over a dipping Pogba drive.
Mirko Vucinic wasted two golden opportunities five minutes before the break. Nicola Legrottaglie picked his pocket when the ball fell to him yards from goal. Andujar then pulled off a remarkable point-blank save from inside his own goal, after the Montenegrin fired straight at him from only a metre out.
Ten minutes into the second half, Juventus controversially took the lead. Vucinic clipped Bendtner through, the Dane missed a sitter, but Andujar couldn't hold onto the ball and Vidal slotted it home. Replays clearly showed Bendtner in an offside position when he got the ball, but the goal stood.
Vidal almost added a second soon after. He skipped past two challenges, only to fire his shot off target.
The game was effectively ended as a contest when Marchese was sent off halfway through the second period after intercepting a pass with his arm. He had already been cautioned for a soft foul in the first half.
Bendtner continued to fluff his chances in the last 20 minutes, as Andujar closed him down, then did well to save from a Pogba header.
Bonucci sent an audacious chip over, before substitute Sebastian Giovinco nearly scored with his first shot.
Vidal stung Andujar's palms with two minutes to go. The goalkeeper then ran off his line to beat a tired Bendtner to the ball.
In stoppage time, Giovinco picked up the ball in his own half and took on half the Catania team, weaving in and out, before blasting his shot over the bar.
Giovinco was sent clear once more, but taken out by Legrottaglie. Nothing was given and replays showed the veteran defender didn't get a touch on the ball. Juve could hardly complain at the decision, given how the match panned out for them.
Hardly a vintage performance from the champions, but still three points nonetheless.
Catania: Andujar, Rolin, Legrottaglie, Spolli, Izco, Lodi, Almiron, (Biagianti 79) Barrientos, (Castro 69) Marchese, Gomez, (Morimoto 81) Bergessio
Juventus: Buffon, Barzagli, Bonucci, Chiellini, Lichtsteiner, (Caceres 89) Vidal, Pirlo, Pogba, (Padoin 92) Asamoah, Bendtner, Vucinic (Giovinco 79)