Bayern, who were without top-scorer Robert Lewandowski after he failed to recover from a knock to his right shoulder, should have been 2-0 up at the break but Vidal sent his penalty well over the crossbar after Dani Carvajal was adjudged to have blocked a Frank Ribery effort with his arm.
"It happens in football. It's not the first time and it won't be the last," Bayern coach Carlo Ancelotti said of the missed penalty.
"We're still alive, we're not dead."
Bayern were dealt another blow with a half-hour to play when Javi Martinez was sent off for a second yellow card within three minutes for fouls on Ronaldo.
"The sending off was the turning point," Bayern captain Philipp Lahm said.
"The red card was the neck breaker."
At the Vicente Calderon, Antoine Griezmann converted a contentious first-half penalty to give Atletico Madrid a 1-0 win over Leicester City.
Griezmann coolly scored from the spot in the 28th minute, the penalty coming after the Frenchman was clipped by Marc Albrighton.
However, replays confirmed the contact was outside the box.
"It's a real disappointment. It's a key moment in the game. It's a really disappointing decision by the referee," caretaker Leicester manager Craig Shakespeare said.
Leicester had no attempts on target for the entire game but they did have a penalty shout turned down in the second half when Riyad Mahrez appeared to have been brought down in the box.
"We played a very good game," Atletico coach Diego Simeone said.
"They were clearly looking to take that result to the second match."
Earlier, teenager Kylian Mbappe scored twice to give Monaco a 3-2 win at Borussia Dortmund, in a match that was postponed by a day after an attack on the home team's bus.
"We love football, we suffer with football and I know we earn a lot of money, and we have a privileged life, but we are human beings and there is so much more than football in this world...and last night we felt it," Dortmund's Nuri Sahin, who was used as a second-half substitute said.
Mbappe gave Monaco a 19th-minute lead, shortly after Fabinho had missed a penalty for the visitors by pulling his spot-kick wide of the post.
Ousmane Dembele pulled one back for Dortmund in the 57th minute but another defensive mistake allowed Mbappe to break away and grab a third goal for the Ligue 1 side.
Shinji Kagawa gave the German side hope with a neat finish six minutes from time.
"It won't be the result that will be remembered, it will be what happened yesterday, which was not a football situation," Monaco coach Leonardo Jardim said.