They were replaced by Georginio Wijnaldum, James Milner and Divock Origi, with the latter making his first Champions League start for the club. However, the Belgian only played the first half before making way for Firmino.
He had hardly touched the ball during a Porto onslaught in the opening stages, sparked by a Jesus Corona shot just over the bar in the first minute.
They had 13 attempts on goal in the first 25 minutes, but would regret not scoring while on top.
"There was a very good football atmosphere and they used it and it was so powerful the game of Porto and so difficult to deal with," Klopp said.
"Porto needed an early goal tonight and didn't score it. I'm completely happy. It's only important to go through, and we went through."
Their opening goal came when Salah - his every touch jeered by the Porto support who felt he should have been sent off in the first leg - rolled the ball into the six-yard area for Mane to get his 22nd of the campaign.
The offside flag came up but Dutch referee Danny Makkelie conferred with his video assistants before awarding the goal.
Porto knew their chance was gone, with their fans cursing Mane again -- he scored a hat-trick in Liverpool's win here in the last 16 last season.
Trent Alexander-Arnold released Salah to run through and beat Iker Casillas on 65 minutes to make it 2-0, before Porto got their consolation shortly after when Militao headed in from an Alex Telles corner.
However, Mane missed the target after rounding Casillas, before Henderson set up fellow substitute Firmino to head in Liverpool's third on 77 minutes and Van Dijk nodded in from a corner to complete the scoring.
"Like at Anfield, it was a harsh result for how we played," said Porto coach Sergio Conceicao.
"If we had been more clinical, everything would have been different."