A late third from Daniel Sturridge killed the game off once and for all as Liverpool continued their unbeaten pre-season with an impressive win over the German champions, setting up a showdown with Atletico Madrid tomorrow.
Bayern quickly gained control of possession, but it didn't take long for Liverpool to show their threat on the break with the pace of Salah and Mane, playing together for the first time.
The latter broke the deadlock after just seven minutes when Roberto Firmino won possession on the halfway line before releasing Mane down the left flank, and the Senegal international supplied the finishing touch by clipping the ball into the far corner.
Liverpool almost made it 2-0 inside 13 minutes when they quickly hit Bayern on the counter again, but this time Sven Ulreich was able to turn Salah's effort round the post after a good ball from Alberto Moreno.
Bayern had to wait until the 16th minute for their first attempt on goal when David Alaba curled a free kick comfortably wide, but that proved to be their best attacking moment of the first half.
It was Liverpool who carved out the bulk of the shooting opportunities, and Moreno tested Ulreich with a free kick of his own before they doubled their advantage with just over 10 minutes remaining until half time.
Mane was once again heavily involved as his flick found Moreno, whose cross into the middle was only parried as far as Salah to leave the Egypt international with a simple finish for his fourth goal of pre-season.
Mane's trickery and pace saw him on the end of a couple of heavy challenges from Bayern full-back Rafinha, and he was replaced at the break as Jurgen Klopp brought on Adam Lallana and Georginio Wijnaldum.
It took until just before the hour mark for either side to have any shots of note in the second half as James Rodriguez fired an effort wide of the target from 25 yards.
More Liverpool changes followed with a little over 20 minutes remaining as Ryan Kent, Ragnar Klavan, Marko Grujic and Sturridge were introduced, and the latter almost made an immediate impact when he was played in down the left channel before flashing a shot wide of the far post.
Two more of that batch of subs thought they had added a third for the visitors moments later when Kent skipped past Rafinha before pulling the ball back to Grujic, whose low strike hit the inside of the post before skimming off Ulreich's leg and crossing the line.
However, the officials belatedly chose to disallow the goal due to an offside against Lallana, who was stood in front of the goalkeeper as the ball went in.
Liverpool did almost get their third goal with 10 minutes remaining when Moreno sent a first-time strike skimming narrowly past the post, before Arturo Vidal also narrowly missed the target with a deflected drive at the other end.
The Reds killed the game off once and for all with their third just seven minutes from time when Sturridge was released through on goal and provided an exquisite finish by scooping the ball over Ulreich.
It was a bittersweet moment for the striker, however, as he injured himself in the process and was forced off shortly afterwards having lasted less than 20 minutes.
That was a rare blot on an otherwise enjoyable night for Liverpool, though, as they came away with a deserved victory which will see them face Atletico in the final tomorrow, after Bayern have taken on Napoli in the third-place playoff.