Liverpool found themselves 2-0 down after a hugely disappointing first 45 minutes, with Vinicius Jr and Marco Asensio making the hosts' total dominance count with two cool finishes past Alisson.
It means the Reds will need to overturn a two-goal deficit at Anfield in the return leg next week - a tall order, but one that may not be out of reach considering the importance of Salah's away goal.
Naby Keita was a shock inclusion in the starting eleven as Thiago made way for the Guinean, whilst Gini Wijnaldum replaced James Milner to captain the Reds. The in-form Diogo Jota was preferred to Roberto Firmino, who started from the bench.
The hosts made a confident start to the game as they eluded Liverpool's high press and got forwards Karim Benzema and Vinicius Jr into threatening positions against the Reds' inexperienced centre-backs.
Luka Modric had a shout for a penalty turned down after coming together with Wijnaldum, but both referee Felix Brych and VAR saw nothing in the challenge, which replays showed happened outside the box.
Vinicius Jr found plenty of joy down the Reds' right and he could have given Madrid the lead with a header after combining with Ferland Mendy, but the Brazilian's header was limp and easy collected by Alisson.
Liverpool were slow and sloppy in possession, allowing Madrid to make quick breaks with ease. Ozan Kabak was called into action on more than one occasion to thwart Benzema, with the Reds defender impressing in the early stages.
But a long ball by Toni Kroos caught Liverpool out as Vinicius Jr got in between Nathaniel Phillips and Trent Alexander-Arnold before coolly slotting the ball past Alisson to make it 1-0 on the night.
Liverpool had no response to the strike as they continued to make unenforced errors and Real Madrid took advantage again less than ten minutes later as Marco Asensio made it 2-0 to the hosts.
Trent Alexander-Arnold attempted to clear another raking Kroos pass but his diving header went straight into the path of Asensio, who kept his cool to lift the ball over Alisson before tucking the ball home.
The inclusion of Keita over Thiago in midfield lasted just 42 minutes as a frustrated Klopp hooked the 26-year-old before half-time, bringing Thiago on to introduce some composure in the middle of the park.
The Reds started the second half strongly and they were rewarded for their fresh attacking impetus as Jota's mis-hit shot inside the box landed at the feet of Mohamed Salah, who made no mistake with his close-range finish to get the all-important away goal.
Liverpool could have equalised through a Jota header after a delightful Alexander-Arnold cross but he failed to get his effort on target before another move saw the Portuguese tuck the ball back for Sadio Mane, who looked favourite to score, but Mendy got around excellently to thwart the Reds forward.
The Reds looked in the ascendancy but they were hit by a sucker-punch midway through the second half as Luka Modric was allowed to find Vinicius Jr inside the box, with the Brazilian finishing instinctively to squeeze the ball under Alisson and make it 3-1 to Madrid.
Zidane's side began to show their European pedigree as the half wore on as they managed the game well and kept the Reds at bay, rendering them unable to build any momentum in attack.
Xherdan Shaqiri and Roberto Firmino came on for Kabak and Jota in the final ten minutes, with Fabinho moving into defence, as the boss looked to add another dimension to his side in search of a second away goal.
Despite the Reds pushing for a second, Real ran out 3-1 winners to give themselves a two-goal advantage heading into the second leg at Anfield next Wednesday.
There's plenty of work to do for the Reds if they wish to progress to the semi-finals, but it's only half-time and the Reds have been in worse positions before eventually coming through.
Liverpool XI: Alisson, Alexander-Arnold, Phillips, Kabak, Robertson, Fabinho, Wijnaldum, Keita, Mane, Salah, Jota.
MOTM: Toni Kroos
Next Fixture: Aston Villa (H) - 10 Apr, 15:00 BST