The Reds, competing at this stage of the competition for the first time since 2009, scored twice in the first half and three times in the second to take complete control ahead of next month's second leg.
Porto looked the more likely to score in the opening quarter of the contest and came closest to doing so when attacking midfielder Otavio sent a deflected shot onto the roof of the net.
The visitors appeared happy to sit back early on, with a more reserved three-man midfield than normal, but it was they who took control of the tie in the space of four first-half minutes.
First, Mane used the wet surface to his advantage by sending a shot from inside the box skidding under the body of Jose Sa - preferred to the more experienced Iker Casillas - before Salah added a second.
Salah's strike was more about composure on the ball, somehow controlling a James Milner shot that crashed back off the post and helping it over the line after some close control.
Liverpool were in their element for the remainder of the first half, racking up the passes and finding gaps to break into once their opponents took back control of the ball.
Porto should have changed the complexion of the tie on the brink of half time, though, only for Yacine Brahimi to drag his shot wide after setting himself up nicely inside the box.
That miss would prove just as costly as Otavia's early on, as a Liverpool side at their counter-attacking best took a giant stride towards the last eight early in the second half.
Firmino started the move with a backheeled pass and nearly rounded it off when slotted through by Salah, but Sa's save was only a temporary reprieve for the Dragons as Mane converted from the follow-up.
Porto, with just one home defeat in 18 here this term prior to tonight, struggled when attempting to find a route back into the contest.
If the tie was not already over at this point then Firmino soon made certain, picking his spot past Sa after an impressive Milner spotted him with a pull-back 12 yards out.
There was still time left for Mane to complete his hat-trick, doing so with five minutes to spare after running at the opposition box and sending a shot flying into the bottom corner from 19 yards, killing off the tie after the first leg.
PORTO (4-2-3-1): Jose Sa; Ricardo, Reyes, Marcano, Alex Telles; Herrera, Sergio; Otavio (Corona 46'), Brahimi (Waris 62'), Marega; Soares (Paciencia 74')
LIVERPOOL (4-3-3): Karius; Alexander-Arnold (Gomez 79'), Van Dijk, Lovren, Robertson; Milner, Henderson (Matip 75'), Wijnaldum; Salah, Mane, Firmino (Ings 80')