Jurgen Klopp's side will now take on Barcelona in the last four, with the first leg taking place at Camp Nou on May 1.
Porto went into the contest requiring at least two goals, and the home side went close during the opening minute as Jesus Corona sent a left-footed strike marginally over the far top corner.
Sergio Conceicao's side remained on the front foot with Moussa Marega heavily involved in the action, and the forward should have perhaps done better with a volley from 12 yards out after meeting a cross from the left.
Liverpool were struggling to cope with much of what Porto were producing going forward, and the Merseyside giants had a lucky escape when Corona took too much time to take a shot when through on goal before Van Dijk made the interception.
Porto were soon made to pay for failing to make the early breakthrough. Mane's close-range effort from a Salah pass was initially ruled out for offside, but VAR showed that the Senegal international was level with the last defender when converting from six yards out.
The home side continued to show ambition going forward with Corona having a low shot kept out by Alisson, but Liverpool nearly doubled their advantage before the break as James Milner's flick was deflected agonisingly wide of the far post.
Francisco Soares was introduced for Porto ahead of the restart, and the substitute went close to an equaliser when sending a header from near the penalty spot wide of the target.
Hector Herrera also forced Alisson into a save with a shot from 30 yards out, but it was not long before Liverpool successfully hit their hosts on the counter to seal their progress.
Trent Alexander-Arnold played a through-ball into the path of the advancing Salah, and the attacker took a touch before slotting a low shot into the near corner of Casillas's goal.
Porto soon had a goal back when Eder Militao powered a header past Brazilian compatriot Allison from a corner, but it only led to Liverpool pushing for more goals during the closing quarter.
Substitute Jordan Henderson provided the assist for a third, with Firmino getting on the end of the midfielder's cross to send a low header past Casillas from 10 yards out.
Porto also showed ambition at the other end of the pitch, but Conceicao's side would have felt hard done by when Van Dijk added a fourth for Liverpool with a close-range header from a corner.
That goal proved to be the end of the scoring, although Liverpool's progression in this tie may have handed Manchester City a boost in the Premier League title race after Pep Guardiola's team were edged out by Tottenham Hotspur in their Champions League last-eight tie.
PORTO (4-3-3): Casillas; Felipe, Pepe, Militao, Telles; Herrera, Danilo, Otavio (Soares 46'); Corona (Andrade 78'), Marega, Brahimi (Costa 81')
LIVERPOOL (4-3-3): Alisson; Alexander-Arnold (Gomez 66'), Matip, Van Dijk, Robertson (Henderson 71'); Milner, Fabinho, Wijnaldum; Salah, Origi (Firmino 46'), Mane