Bayern, who host Arsenal on Wednesday in the Champions League last 16 first leg, broke the deadlock when Vidal ghosted in behind the Ingolstadt defence and put his side ahead on 90 minutes.
Robben netted just 60 seconds later to seal victory in the Bavaria derby.
It was a deserved win for Bayern after Robert Lewandowski hit the crossbar late on and had a first-half effort cleared off the line.
Bayern's main rivals, RB Leipzig, Eintracht Frankfurt and Borussia Dortmund, all lost.
Second-placed Leipzig lost for the second week in a row in crashing 3-0 at home to Hamburg, who escaped the bottom three.
RB were two goals down after 24 minutes in a nightmare first-half as they conceded two headers from almost identical situations.
Centre-back Kyriakos Papadopoulos leapt highest to put them Hamburg ahead on 18 minutes.
The second goal followed six minutes later, again from a Nicolai Mueller corner, when Brazil midfielder Walace was unmarked in the middle.
Leipzig coach Ralph Hasenhuettl responded by substituting overwhelmed centre-back Dayot Upamecano, who made his starting debut, for forward Yussuf Poulsen after half an hour.
[caption id="attachment_46225" align="aligncenter" width="640"]
Leipzig's Marcel Sabitzer in action with Hamburg's Lewis Holtby and Papadopoulos REUTERS
But Poulsen lasted barely ten minutes before going off injured to be replaced by Davie Selke just before the break.
Hamburg grabbed a late third when replacement Aaron Hunt scored with his first touch.
Third-placed Frankfurt lost 3-0 at Bayer Leverkusen as Javier 'Chicharito' Hernandez scored two superb goals to take the pressure off coach Roger Schmidt following back-to-back defeats.
Chicharito volleyed home a cross on five minutes, then doubled the tally on 63 minutes when he slammed home the cross with his first touch before Kevin Volland netted Leverkusen's third.
Fourth-placed Dortmund crashed 2-1 at bottom side Darmstadt
Thomas Tuchel named three teenagers in Dortmund's starting line-up in their final match before Tuesday's Champions League last 16, first-leg, match at Benfica.
Dzenis Burnic made his debut in defence, the second 18-year-old in the starting line-up alongside US international midfielder Christian Pulisic, while attacking midfielder Emre Mor is only 19.
It backfired as Darmstadt went ahead on 21 minutes when US international striker Terrence Boyd, on loan from Leipzig, was unmarked.
[caption id="attachment_46227" align="aligncenter" width="640"]
Darmstadt's Hamit Altintop in action with Dortmund's Pierre-Emerick Aubameyang REUTERS
Dortmund's Germany winger Marco Reus hit the crossbar from a free-kick on 32 minutes before midfielder Raphael Guerreiro levelled with a bullet shot just before the half-time break.
But Darmstadt sealed the win when Antonio-Mirko Colak got in behind the defence and slotted his shot Dortmund goalkeeper Roman Burki's legs.
Borussia Moechengladbach climbed to ninth as Thorgan Hazard, brother of Chelsea star Eden, scored in their 1-0 win at Werder Bremen, who drop into the bottom three.
Schalke moved up two places to 11th on Saturday night with a 2-0 win at home to Hertha Berlin thanks to goals by striker Guido Burgstaller and midfielder Leon Goretzka.
Burgstaller 41, Goretzka 62 Hertha Berlin 0
FC Ingolstadt 0 Bayern Munich 2
Vidal 90, Robben 90+1
RB Leipzig 0 Hamburg SV 3
Papadopoulos 18, Walace 24, Hunt 90+3
Werder Bremen 0 Borussia Moenchengladbach 1
Boyd 21, Colak 67 Borussia Dortmund 1
Bayer Leverkusen 3
Hernandez 5,63, Volland 78 Eintracht Frankfurt 0
P W D L F A Pts
1 Bayern Munich
20 15 4 1 45 12 49
2 RB Leipzig
20 13 3 4 36 20 42
3 Eintracht Frankfurt
20 10 5 5 25 18 35
4 Borussia Dortmund
20 9 7 4 40 23 34
19 8 10 1 35 19 34
6 Hertha Berlin
20 10 3 7 27 23 33
19 8 8 3 28 16 32
8 Bayer Leverkusen
20 8 3 9 31 29 27
9 Borussia Moenchengladbach
20 7 5 8 22 27 26
19 8 2 9 24 33 26