Dybala netted twice in the first half and Giorgio Chiellini added the third goal early in the second half.
Dybala netted twice before the midway point in the first half and Giorgio Chiellini added the third goal early in the second half in Turin to leave Juve in control of the tie ahead of next Wednesday's return at the Camp Nou.
Having made history when they overturned a 4-0 first-leg deficit against Paris Saint-Germain in the last 16 by winning the return 6-1, Barcelona will need another stunning comeback if they are to reach the last four.
Juventus last met the Spanish giants when they lost 3-1 in the 2015 final, but here they ran Luis Enrique's men ragged and nullified the visitors' front three of Messi, Neymar and Luis Suarez.
A Sami Khedira effort in the opening minutes went well over, but it was a sign of things to come in a great opening half for the hosts that saw 23-year-old Dybala sparkle.
Juve's seventh-minute opener was a work of simplicity finished off by a Dybala master stroke.
Juan Cuadrado was the provider on the right flank, setting up Dybala who turned 12 yards out and curled a left-footed shot inside the far post, beyond the outstretched hand of goalkeeper Marc-Andre ter Stegen.
It took Barca until 21 minutes to threaten, but Gianluigi Buffon denied Andres Iniesta after he had been picked out by a superb Messi pass.
Buffon pumped his fist in defiance, and he was pumping both in celebration moments later when Dybala met Mario Mandzukic's ball in from the left to sweep a first-time shot inside Ter Stegen's near post to make it 2-0.
Messi had the ball in the net on the half hour, but the goal was disallowed for an earlier infringement, and Juve finished the opening half with a flurry.
Miralem Pjanic fired Cudrado's cutback high and wide, while Higuain and Leonardo Bonucci both had Ter Stegen scrambling to save in the final minutes of the half.
Barcelona coach Luis Enrique took off French left-back Jeremy Mathieu and brought on Portuguese midfielder Andre Gomes at half-time, moving Javier Mascherano back into defence.
The visitors briefly showed promise, with Suarez firing just wide of Buffon's outstretched hand, but Juve went further ahead on 55 minutes.
Chiellini, famously bitten by Suarez when Italy played Uruguay at the 2014 World Cup, held off Mascherano at a corner to send an angled header in off the far post.
It was his second goal in the competition and first since October 2009 when his header secured the points against Maccabi Haifa in Turin.
Suarez fired just wide again midway through the second half and Chiellini was lucky not to concede a penalty when both he and Cuadrado dived low to thwart a shot which came off the defender's face then rolled up his arm.
Barca continued to press but could not get the away goal that would have improved their chances ahead of the second leg.