Vidal agreed a one-year extension to keep him in Turin until 2017 in midweek and immediately proved his worth with a 12th-minute strike.
A much-changed Juve line-up failed to make the game safe until the final minute when Giorgio Chiellini headed in a corner from substitute Carlos Tevez to wrap up a fifth successive league win.
Juve coach Antonio Conte made six changes as he sought to rest some of his key man ahead of Tuesday's decisive Champions League trip to Galatasaray.
The Italian champions need to avoid defeat in Istanbul to ensure their progress to the knockout stages and while Conte kept faith with most of his backline, strikers Mirko Vucinic and Fabio Quagliarella were brought in for Fernando Llorente and Tevez.
Juve were quickly out of the blocks and were rewarded with Vidal's opener.
Angelo Ogbonna's searching ball forward created the initial danger and while Bologna momentarily recovered Federico Peluso's clever dink over the defensive line for Vidal opened them up again.
Vidal took a touch before lacing past Gianluca Curci as he lunged forward in an attempt to smother the shot.
Juve kept pushing and Quagliarella came close when a stinging 25-yard drive took a slight deflection and hit the side-netting.
Bologna's only obvious avenue to goal was through their Italy international Alessandro Diamanti who twice stung the palms of Gianluigi Buffon.
Juve were at least starting to be pushed back, but Diamanti then appeared to kick out at Azzurri team-mate Chiellini as they jockeyed for a ball destined to run out for a goal-kick.
Chiellini was bemused by the incident and the referee's lack of action.
Juve suffered an injury blow ahead of their Turkey trip when Vucinic limped off on 38 minutes with Llorente coming on as the score remained 1-0 into half-time.
Juve were more sedate after the interval, prompting Conte to repeatedly bark instructions from the touchline, and Curci was untroubled until pushing aside a Llorente turn-and-shot at close quarters with an hour on the clock.
Peluso was then lucky to avoid a second caution when he went in hard on Diamanti before rolling the ball into the prone midfielder's face. Conte immediately removed him for Kwadwo Asamoah.
The Ghanaian had the ball in the net a minute later, only to be correctly flagged offside, before Curci raced 30 yards off his line to slide tackle Llorente when he was clean through.
At 1-0 Bologna remained in the game and Jonathan Cristaldo slid a shot just wide after racing on to Chiellini's mis-placed clearance.
Archimede Morleo went even closer with a header when he out-jumped Mauricio Isla at the back post with 10 minutes left.
They were warning shots that Juve finally responded to in the 90th minute when Chiellini glanced in a Tevez corner at the near post.