Shorn of first-choice defenders Sergio Ramos and Raphael Varane, Madrid took the game to Liverpool from the off in the first meeting between the sides since the 2018 final, exposing the Reds' own defensive frailties.
Vinicius opened the scoring from Toni Kroos' exceptional pass and Trent Alexander-Arnold's error nine minutes later led to Marco Asensio making it 2-0.
Mohamed Salah snatched a potentially crucial away goal for Liverpool, but Vinicus' second ensured a first-leg lead for the 13-time European champions.
Alexander-Arnold's issues started with a sloppy pass in the 24th minute, Ozan Kabak sparing his team-mate's blushes by blocking Karim Benzema's route to goal.
Liverpool's luck soon ran out. Having spotted a gap between Alexander-Arnold and Nathaniel Phillips, Kroos dropped an inch-perfect pass onto the chest of Vinicius, who took it brilliantly in his stride before drilling home.
Sadio Mane was left furious not to have been awarded a free-kick for a barge from Lucas Vazquez, and Liverpool's anger was compounded from the subsequent Madrid attack as Alexander-Arnold headed directly into the path of Asensio, who coolly nudged it over Alisson to finish into an empty net.
With Asensio spurning another gift-wrapped opportunity, Jurgen Klopp turned to Thiago Alcantara to replace Naby Keita before half-time, and Liverpool restored parity six minutes after the restart, Salah on hand to tuck in after latching onto a deflected shot.
After Diogo Jota headed wide, Ferland Mendy made a perfectly timed challenge to deny Sadio Mane, and Alexander-Arnold was needed to make a similarly vital intervention at the other end to cut out Asensio's pass to Vinicius.
Vinicius would not be denied his second, however, and his low shot was soon helped into the corner by Alisson to restore Madrid's two-goal cushion ahead of next week's second leg.