The four changes did little to disrupt the Reds' attacking vigour from the weekend as they welcomed the lively Anfield crowd with an exceptional start and imposed their game on Milan with little resistance.
Liverpool continued to dominate possession and create numerous opportunities before being awarded a penalty after Andy Robertson saw an effort blocked by Ismael Bennacer's arm.
However, Salah couldn't convert from the spot as goalkeeper Mike Maignan made a good low save before denying Diogo Jota's follow-up as the score remained at 1-0.
Liverpool's domination reaped fewer rewards as the half wore on and they were made to pay for their lack of finishing ability as Milan scored against the run of play through a fine Ante Rebic finish to level the scores.
Things got worse for the Reds just seconds later as Milan found an unlikely second via Brahim Diaz, who tapped in the loose ball after Robertson had initially denied Rafael Leao's goalbound shot, giving Stefano Pioli's side a surprise 2-1 lead at the break.
Milan thought they'd scored a third just seconds into the second half as Simon Kjaer took advantage of a Henderson error and tapped home from close range, but the goal was ruled out for offside in the build-up.
The Reds got back on level terms less than a minute after Kjaer's disallowed goal as Salah, Fabinho and Origi linked up at the edge of the box before Origi's lofted through ball was finished by Salah to make it 2-2.
There was an intriguing ebb and flow to the game as both sides looked to run out victors and it was the Reds who netted the crucial fifth of the game with 20 minutes left on the clock.
The ball landed at the feet of Henderson following a Reds corner, with the skipper taking the half-volley on and finding the back of the net with a powerful low strike to make it 3-2.
It sealed Liverpool's first three points of Group B after a topsy-turvy 90 minutes, with their next European encounter away to Porto in a little under two weeks.