With both RB Leipzig and Borussia Dortmund losing, it looked as though Bayern would miss an opportunity take full advantage at Audi Sportpark, but Vidal's second of the season eventually set them on their way.
Substitute Arjen Robben added the gloss with a second in stoppage time to ensure Bayern stole a march on their faltering rivals.
The opening hour of the encounter proved to be a drab affair, with Bayern's only real chances of note being denied by last-ditch clearances.
Bayern's pressure eventually told, though, as the resilient hosts were finally undone in the last minute of the match, Vidal guiding home Thomas Muller's cross.
Robben lashed home a second two minutes later to wrap up a win that gives Bayern a healthy cushion over Leipzig as they prepare for a return to European football against Arsenal in the Champions League.
Bayern were far from their fluent best in the opening 20 minutes as Ingolstadt successfully stifled their illustrious opponents with a high-pressing game.
Mats Hummels and Robert Lewandowski wasted the two early half chances the visitors were able to create before the latter was denied by a stunning piece of defending from Marvin Matip.
With 20 minutes on the clock, Xabi Alonso picked out the run of Lewandowski behind the Ingolstadt defence. The Poland forward lifted the ball over the onrushing Martin Hansen but Matip got back superbly to stop the ball rolling into the unguarded goal.
It was the closest either side came to a goal before the break, though, with Ingolstadt only briefly worrying Manuel Neuer as Marcel Tisserand looped a header just over from Markus Suttner's late free-kick.
The visitors quickly looked to up the tempo at the start of the second half and Muller's goal drought almost came to an end two minutes after the restart.
Having controlled Lewandowski's pass, the Germany international shot under Hansen, but as the ball crept towards the goal it was cleared off the line by Florent Hadergjonaj.
Against the run of play, Ingolstadt came agonisingly close to opening the scoring after 54 minutes, Mathew Leckie's attempt to turn Romain Bregerie's effort beyond Neuer seeing the ball just drop wide.
Carlo Ancelotti turned to his bench to freshen things up but it was Lewandowski who nearly provided the shot in the arm for the visitors in the closing minutes, his swerving shot thudding against the post.
However, the goal eventually did come as Muller's deep cross was steered past Hansen by Vidal, the Chile international ghosting into the six-yard box.
They were not done there, either, as Robben produced the spark Ancelotti was hoping for with a low finish that evaded Hansen's reach.