Juventus had spurned several chances in the opening half when Monaco, who stunned Arsenal 3-1 at the Emirates on their way to the last eight, also came close, only for Yannick Ferreira-Carrasco to shoot straight at Gianluigi Buffon.
The Turin giants, however, were given a break by Czech referee Pavel Kralovec, who pointed to the spot just before the hour when Alvaro Morata, under pressure from Ricardo Carvalho, slumped to the ground on the edge of the area.
Monaco's protests that the foul was outside the area went unheard and Vidal, who had blazed over twice in the opening half, calmed nerves by firing past Danijel Subasic and into the top corner.
Monaco coach Leonardo Jardim was furious with the result.
"We wanted to leave with a totally different result and we will have to play a totally different game if we're to go through to the semis," he said.
"But the result was down to a penalty that didn't exist. I'm disappointed. We played a good game, we've got to the quarters and I don't think the score truly reflects what truly happened in the match."
Juventus coach Massimiliano Allegri, meanwhile, claimed the one-goal cushion may not be sufficient to secure passage into the semis: "It was a good result for us, we didn't concede a goal so we've got a small advantage. But it won't be easy in Monaco."
Juventus welcomed back Andrea Pirlo after several weeks of absence due to injury, while Buffon and Carlos Tevez returned to the starting line up after missing the shock 1-0 defeat to Parma at the weekend.
Allegri opted for the 4-3-1-2 formation that saw the Italian champions sweep Borussia Dortmund aside 5-1 on aggregate to book their quarter-final place.
However, that caused problems, as well as chances, for the hosts who went in for the half-time break with little reward for their efforts.
Spanish striker Morata fired a volley over from Pirlo's delightful chip in the opening minutes while Tevez forced Subasic to block a low 25-yard drive.
But Monaco quickly demonstrated their potency on the counter, the pace of Ferreira-Carrasco in particular causing problems for Swiss right-back Stephan Lichsteiner.
When Layvin Kurzawa found space out wide, the left-back fired his effort over. Juve survived a bigger scare when Ferreira-Carrasco was set up inside the area only to fire straight at Buffon.
Those chances sparked Juve into life, but Monaco, who had conceded only four times in their past eight Champions League games, packed their defence tightly.
Tevez escaped to the back post but, while unmarked, shot straight at Subasic from Claudio Marchisio's pinpoint delivery, while Tunisian defender Aymen Abdennour produced a timely block on Lichsteiner's cross aimed at Morata, who was lurking at the far post.
Monaco had claims for a penalty waved away after teenage striker Antony Martial tumbled to the ground under pressure from Giorgio Chiellini as he muscled his way into the area.
Juve finished the half on a high, but in frustration, after Tevez shot straight at Subasic while unmarked at back post from Marchisio's chip, before Vidal ballooned over after running onto a ball delivered by the outside of Tevez's boot.
Monaco began brightly after the restart but Buffon reacted quickly to substitute Bernardo Silva's near-post drive, although it looked slightly off target.
Juve finally broke the deadlock just before the hour, Vidal stepping up to smash the ball past Subasic and send a packed-out Juventus Stadium into raptures.
Midfielder Geoffrey Kondogbia saw his long-distance drive tipped over by Buffon minutes later and with 20 minutes remaining Monaco coach Leonardo
Jardim reshuffled his side, replacing Italian defender Andrea Raggi with striker Dimitar Berbatov.
While the Bulgarian had an almost immediate impact, heading over from a corner, Monaco failed to grab the away-goal equaliser that would have given them a huge boost ahead of the April 22nd return leg.